Commit 56ebd5dc authored by Waleed Akbar's avatar Waleed Akbar
Browse files

Foreced changes in KpiValueWriter to handle gRPC empty return message.

parent bf4dd447
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ from .MetricWriterToPrometheus import MetricWriterToPrometheus

LOGGER           = logging.getLogger(__name__)
ACTIVE_CONSUMERS = []
METRIC_WRITER    = MetricWriterToPrometheus()

class KpiValueWriter(GenericGrpcService):
    def __init__(self, cls_name : str = __name__) -> None:
@@ -48,12 +47,14 @@ class KpiValueWriter(GenericGrpcService):

    @staticmethod
    def KafkaConsumer():
        kpi_manager_client = KpiManagerClient()
        metric_writer      = MetricWriterToPrometheus()

        kafka_consumer  = KafkaConsumer(
            { 'bootstrap.servers' : KafkaConfig.SERVER_IP.value,
              'group.id'          : __class__,
              'auto.offset.reset' : 'latest'}
        )      
        kpi_manager_client = KpiManagerClient()
        kafka_consumer.subscribe([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))
@@ -72,13 +73,13 @@ class KpiValueWriter(GenericGrpcService):
                kpi_value.ParseFromString(raw_kpi.value())
                LOGGER.info("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:
                print("Error detail: {:}".format(e))
                continue

    @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 -----")

        kpi_id = KpiId()
@@ -89,12 +90,11 @@ class KpiValueWriter(GenericGrpcService):
        try:
            kpi_descriptor_object = KpiDescriptor()
            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:
            # print("kpi descriptor received: {:}".format(kpi_descriptor_object))
            # if isinstance (kpi_descriptor_object, KpiDescriptor):
                LOGGER.info("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:
                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))