Skip to content
Snippets Groups Projects
Commit 614e4483 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

Foreced changes in KpiValueWriter to handle gRPC empty return message.

parent 35ef2d9d
No related branches found
No related tags found
2 merge requests!294Release TeraFlowSDN 4.0,!261(CTTC) New Analytics Component
...@@ -33,7 +33,6 @@ from .MetricWriterToPrometheus import MetricWriterToPrometheus ...@@ -33,7 +33,6 @@ from .MetricWriterToPrometheus import MetricWriterToPrometheus
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
ACTIVE_CONSUMERS = [] ACTIVE_CONSUMERS = []
METRIC_WRITER = MetricWriterToPrometheus()
class KpiValueWriter(GenericGrpcService): class KpiValueWriter(GenericGrpcService):
def __init__(self, cls_name : str = __name__) -> None: def __init__(self, cls_name : str = __name__) -> None:
...@@ -48,12 +47,14 @@ class KpiValueWriter(GenericGrpcService): ...@@ -48,12 +47,14 @@ class KpiValueWriter(GenericGrpcService):
@staticmethod @staticmethod
def KafkaConsumer(): def KafkaConsumer():
kpi_manager_client = KpiManagerClient()
metric_writer = MetricWriterToPrometheus()
kafka_consumer = KafkaConsumer( kafka_consumer = KafkaConsumer(
{ 'bootstrap.servers' : KafkaConfig.SERVER_IP.value, { 'bootstrap.servers' : KafkaConfig.SERVER_IP.value,
'group.id' : __class__, 'group.id' : __class__,
'auto.offset.reset' : 'latest'} 'auto.offset.reset' : 'latest'}
) )
kpi_manager_client = KpiManagerClient()
kafka_consumer.subscribe([KafkaTopic.VALUE.value]) kafka_consumer.subscribe([KafkaTopic.VALUE.value])
LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value))
print("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) print("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value))
...@@ -72,13 +73,13 @@ class KpiValueWriter(GenericGrpcService): ...@@ -72,13 +73,13 @@ class KpiValueWriter(GenericGrpcService):
kpi_value.ParseFromString(raw_kpi.value()) kpi_value.ParseFromString(raw_kpi.value())
LOGGER.info("Received KPI : {:}".format(kpi_value)) LOGGER.info("Received KPI : {:}".format(kpi_value))
print("Received KPI : {:}".format(kpi_value)) print("Received KPI : {:}".format(kpi_value))
KpiValueWriter.get_kpi_descriptor(kpi_value, kpi_manager_client) KpiValueWriter.get_kpi_descriptor(kpi_value, kpi_manager_client, metric_writer)
except Exception as e: except Exception as e:
print("Error detail: {:}".format(e)) print("Error detail: {:}".format(e))
continue continue
@staticmethod @staticmethod
def get_kpi_descriptor(kpi_value: str, kpi_manager_client ): def get_kpi_descriptor(kpi_value: str, kpi_manager_client, metric_writer):
print("--- START -----") print("--- START -----")
kpi_id = KpiId() kpi_id = KpiId()
...@@ -89,12 +90,11 @@ class KpiValueWriter(GenericGrpcService): ...@@ -89,12 +90,11 @@ class KpiValueWriter(GenericGrpcService):
try: try:
kpi_descriptor_object = KpiDescriptor() kpi_descriptor_object = KpiDescriptor()
kpi_descriptor_object = kpi_manager_client.GetKpiDescriptor(kpi_id) kpi_descriptor_object = kpi_manager_client.GetKpiDescriptor(kpi_id)
# TODO: why kpi_descriptor_object recevies a KpiDescriptor type object not Empty type object???
if kpi_descriptor_object.kpi_id.kpi_id.uuid == kpi_id.kpi_id.uuid: if kpi_descriptor_object.kpi_id.kpi_id.uuid == kpi_id.kpi_id.uuid:
# print("kpi descriptor received: {:}".format(kpi_descriptor_object))
# if isinstance (kpi_descriptor_object, KpiDescriptor):
LOGGER.info("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object)) LOGGER.info("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object))
print("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object)) print("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object))
METRIC_WRITER.create_and_expose_cooked_kpi(kpi_descriptor_object, kpi_value) metric_writer.create_and_expose_cooked_kpi(kpi_descriptor_object, kpi_value)
else: else:
LOGGER.info("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id)) LOGGER.info("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id))
print("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id)) print("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment