From 3d9e0e18abb3207c6399503c46292c60d43dd2c4 Mon Sep 17 00:00:00 2001 From: "Georgios P. Katsikas" Date: Mon, 1 Dec 2025 16:34:48 +0000 Subject: [PATCH 1/2] fix: logging issues not reporting timestamps --- src/kpi_manager/database/KpiModel.py | 1 - .../service/KpiManagerServiceServicerImpl.py | 10 +++++----- src/kpi_manager/service/__main__.py | 2 +- src/kpi_value_api/service/__main__.py | 2 +- src/kpi_value_writer/service/KpiValueWriter.py | 14 +++++++------- src/kpi_value_writer/service/__main__.py | 2 +- .../l3nm_ryu/L3NMRyuServiceHandler.py | 1 - .../collectors/gnmi_oc/GnmiOpenConfigCollector.py | 3 ++- src/telemetry/database/TelemetryModel.py | 1 - 9 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/kpi_manager/database/KpiModel.py b/src/kpi_manager/database/KpiModel.py index 169f9d265..62596d0c9 100644 --- a/src/kpi_manager/database/KpiModel.py +++ b/src/kpi_manager/database/KpiModel.py @@ -18,7 +18,6 @@ from sqlalchemy import Column, Integer, String, Text from sqlalchemy.orm import registry from common.proto.kpi_manager_pb2 import KpiDescriptor -logging.basicConfig(level=logging.INFO) LOGGER = logging.getLogger(__name__) # Create a base class for declarative models diff --git a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py index da3eefe78..29a0d0a2f 100644 --- a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py +++ b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py @@ -35,7 +35,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): self, request: KpiDescriptor, grpc_context: grpc.ServicerContext # type: ignore ) -> KpiId: # type: ignore response = KpiId() - LOGGER.info("Received gRPC message object: {:}".format(request)) + LOGGER.debug(f"SetKpiDescriptor - Received gRPC message object: {request}") kpi_to_insert = KpiModel.convert_KpiDescriptor_to_row(request) if self.kpi_db_obj.add_row_to_db(kpi_to_insert): response.kpi_id.uuid = request.kpi_id.kpi_id.uuid @@ -47,11 +47,11 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore ) -> KpiDescriptor: # type: ignore response = KpiDescriptor() - LOGGER.info("Received gRPC message object: {:}".format(request)) + LOGGER.debug(f"GetKpiDescriptor - Received gRPC message object: {request}") kpi_id_to_search = request.kpi_id.uuid row = self.kpi_db_obj.search_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) if row is None: - LOGGER.info('No matching row found kpi id: {:}'.format(kpi_id_to_search)) + LOGGER.error(f"No matching row found kpi id: {kpi_id_to_search}") raise NotFoundException('KpiDescriptor', kpi_id_to_search) response = KpiModel.convert_row_to_KpiDescriptor(row) return response @@ -60,7 +60,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): def DeleteKpiDescriptor( self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore ) -> Empty: # type: ignore - LOGGER.info("Received gRPC message object: {:}".format(request)) + LOGGER.debug(f"DeleteKpiDescriptor - Received gRPC message object: {request}") kpi_id_to_search = request.kpi_id.uuid self.kpi_db_obj.delete_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) return Empty() @@ -69,7 +69,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): def SelectKpiDescriptor( self, filter: KpiDescriptorFilter, grpc_context: grpc.ServicerContext # type: ignore ) -> KpiDescriptorList: # type: ignore - LOGGER.info("Received gRPC message object: {:}".format(filter)) + LOGGER.debug(f"SelectKpiDescriptor - Received gRPC message object: {request}") response = KpiDescriptorList() rows = self.kpi_db_obj.select_with_filter(KpiModel, filter) for row in rows: diff --git a/src/kpi_manager/service/__main__.py b/src/kpi_manager/service/__main__.py index 936a8fb3d..0421fc6a1 100644 --- a/src/kpi_manager/service/__main__.py +++ b/src/kpi_manager/service/__main__.py @@ -30,7 +30,7 @@ def main(): global LOGGER # pylint: disable=global-statement log_level = get_log_level() - logging.basicConfig(level=log_level) + logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") LOGGER = logging.getLogger(__name__) signal.signal(signal.SIGINT, signal_handler) diff --git a/src/kpi_value_api/service/__main__.py b/src/kpi_value_api/service/__main__.py index 062856874..be6596e98 100644 --- a/src/kpi_value_api/service/__main__.py +++ b/src/kpi_value_api/service/__main__.py @@ -27,7 +27,7 @@ def main(): global LOGGER # pylint: disable=global-statement log_level = get_log_level() - logging.basicConfig(level=log_level) + logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") LOGGER = logging.getLogger(__name__) signal.signal(signal.SIGINT, signal_handler) diff --git a/src/kpi_value_writer/service/KpiValueWriter.py b/src/kpi_value_writer/service/KpiValueWriter.py index fa4d482b5..fe84fabaa 100644 --- a/src/kpi_value_writer/service/KpiValueWriter.py +++ b/src/kpi_value_writer/service/KpiValueWriter.py @@ -49,21 +49,21 @@ class KpiValueWriter(GenericGrpcService): consumer = self.kafka_consumer consumer.subscribe([KafkaTopic.VALUE.value]) - LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) + LOGGER.debug(f"Kafka Consumer start listening on topic: {KafkaTopic.VALUE.value}") while True: raw_kpi = consumer.poll(1.0) if raw_kpi is None: continue elif raw_kpi.error(): if raw_kpi.error().code() != KafkaError._PARTITION_EOF: - print("Consumer error: {}".format(raw_kpi.error())) + LOGGER.debug(f"Consumer error: {raw_kpi.error()}") continue try: kpi_value = json.loads(raw_kpi.value().decode('utf-8')) - LOGGER.info("Received KPI : {:}".format(kpi_value)) + LOGGER.debug(f"Received KPI: {kpi_value}") self.get_kpi_descriptor(kpi_value, kpi_manager_client, metric_writer) - except: - LOGGER.exception("Error detail: ") + except Exception as ex: + LOGGER.exception(f"Error detail: {ex}") continue def get_kpi_descriptor(self, kpi_value: str, kpi_manager_client, metric_writer): @@ -73,9 +73,9 @@ class KpiValueWriter(GenericGrpcService): kpi_descriptor_object = KpiDescriptor() kpi_descriptor_object = kpi_manager_client.GetKpiDescriptor(kpi_id) if kpi_descriptor_object.kpi_id.kpi_id.uuid == kpi_id.kpi_id.uuid: - LOGGER.info("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object)) + LOGGER.debug(f"Extracted KpiDescriptor: {kpi_descriptor_object}") metric_writer.create_and_expose_cooked_kpi(kpi_descriptor_object, kpi_value) else: - LOGGER.info("No KPI Descriptor found in Database for Kpi ID: {:}".format(kpi_id)) + LOGGER.warning(f"No KPI Descriptor found in Database for KPI ID: {kpi_id}") except: LOGGER.exception("Unable to get KpiDescriptor") diff --git a/src/kpi_value_writer/service/__main__.py b/src/kpi_value_writer/service/__main__.py index e90bdf9bd..ddda5173a 100644 --- a/src/kpi_value_writer/service/__main__.py +++ b/src/kpi_value_writer/service/__main__.py @@ -27,7 +27,7 @@ def main(): global LOGGER # pylint: disable=global-statement log_level = get_log_level() - logging.basicConfig(level=log_level) + logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") LOGGER = logging.getLogger(__name__) signal.signal(signal.SIGINT, signal_handler) diff --git a/src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py b/src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py index 4a7ad333b..e3de3553d 100644 --- a/src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py +++ b/src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py @@ -24,7 +24,6 @@ from service.service.service_handler_api._ServiceHandler import _ServiceHandler from service.service.service_handler_api.SettingsHandler import SettingsHandler from service.service.task_scheduler.TaskExecutor import TaskExecutor -logging.basicConfig(level=logging.DEBUG) LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('Service', 'Handler', labels={'handler': 'l3nm_ryu'}) diff --git a/src/telemetry/backend/service/collectors/gnmi_oc/GnmiOpenConfigCollector.py b/src/telemetry/backend/service/collectors/gnmi_oc/GnmiOpenConfigCollector.py index 44b169135..c383e1cab 100644 --- a/src/telemetry/backend/service/collectors/gnmi_oc/GnmiOpenConfigCollector.py +++ b/src/telemetry/backend/service/collectors/gnmi_oc/GnmiOpenConfigCollector.py @@ -14,6 +14,7 @@ import logging, pytz, queue +from common.Settings import get_log_level from datetime import datetime from typing import Dict, Optional, Tuple, List, Union, Any, Iterator from pygnmi.client import gNMIclient @@ -22,7 +23,7 @@ from .PathMapper import PathMapper from .SubscriptionNew import Subscription logging.basicConfig( - level=logging.DEBUG, + level=get_log_level(), format="%(asctime)s %(levelname)8s [%(name)s - %(funcName)s()]: %(message)s", ) diff --git a/src/telemetry/database/TelemetryModel.py b/src/telemetry/database/TelemetryModel.py index 8238d47c6..6eaf41805 100644 --- a/src/telemetry/database/TelemetryModel.py +++ b/src/telemetry/database/TelemetryModel.py @@ -18,7 +18,6 @@ from sqlalchemy import Column, String, Float from sqlalchemy.orm import registry from common.proto import telemetry_frontend_pb2 -logging.basicConfig(level=logging.INFO) LOGGER = logging.getLogger(__name__) # Create a base class for declarative models -- GitLab From bfd146935c84006d2c5273ccc7f4a48cc2810419 Mon Sep 17 00:00:00 2001 From: "Georgios P. Katsikas" Date: Mon, 1 Dec 2025 17:38:08 +0000 Subject: [PATCH 2/2] fix: wrong variable in logging --- src/kpi_manager/service/KpiManagerServiceServicerImpl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py index 29a0d0a2f..86683898a 100644 --- a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py +++ b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py @@ -69,7 +69,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): def SelectKpiDescriptor( self, filter: KpiDescriptorFilter, grpc_context: grpc.ServicerContext # type: ignore ) -> KpiDescriptorList: # type: ignore - LOGGER.debug(f"SelectKpiDescriptor - Received gRPC message object: {request}") + LOGGER.debug(f"SelectKpiDescriptor - Received gRPC message object: {filter}") response = KpiDescriptorList() rows = self.kpi_db_obj.select_with_filter(KpiModel, filter) for row in rows: -- GitLab