From 40b36fab170821666d28d389c774b4cb9897e3fb Mon Sep 17 00:00:00 2001 From: Steve Laing Date: Tue, 9 Jun 2026 14:12:46 +0100 Subject: [PATCH 1/2] Re-add opentelemetry config Configuring just before we start the service seems to avoid permissions issues on Windows VMs. We did not see this issue on the Hull gateway machine with the relay listener. --- src/mwl_main.py | 3 +++ src/pacs_main.py | 3 +++ src/upload_main.py | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/mwl_main.py b/src/mwl_main.py index 7c54712f..97889086 100644 --- a/src/mwl_main.py +++ b/src/mwl_main.py @@ -6,6 +6,7 @@ from dotenv import load_dotenv from server import MWLServer +from telemetry import configure_telemetry load_dotenv() @@ -30,6 +31,8 @@ def main(): mwl_server = MWLServer(mwl_aet, mwl_port, mwl_db_path, block=True) + configure_telemetry(service_name="mwl-server") + try: mwl_server.start() except KeyboardInterrupt: diff --git a/src/pacs_main.py b/src/pacs_main.py index 5dfc7640..10d84734 100644 --- a/src/pacs_main.py +++ b/src/pacs_main.py @@ -6,6 +6,7 @@ from dotenv import load_dotenv from server import PACSServer +from telemetry import configure_telemetry load_dotenv() @@ -33,6 +34,8 @@ def main(): pacs_server = PACSServer(pacs_aet, pacs_port, pacs_storage_path, pacs_db_path, block=True, mwl_db_path=mwl_db_path) + configure_telemetry(service_name="pacs-server") + try: pacs_server.start() except KeyboardInterrupt: diff --git a/src/upload_main.py b/src/upload_main.py index 097d89c0..97c4b473 100644 --- a/src/upload_main.py +++ b/src/upload_main.py @@ -9,6 +9,7 @@ from services.dicom.upload_listener import UploadListener from services.dicom.upload_processor import UploadProcessor from services.storage import MWLStorage, PACSStorage +from telemetry import configure_telemetry load_dotenv() @@ -67,6 +68,8 @@ def main(): logging.info(f"API endpoint: {uploader.api_endpoint}") logging.info("=" * 60) + configure_telemetry(service_name="upload-listener") + try: listener.start() except KeyboardInterrupt: From 2e0d3b69f2e798d5dfd0b48fbd7c6d973602f5a8 Mon Sep 17 00:00:00 2001 From: Steve Laing Date: Tue, 9 Jun 2026 14:41:29 +0100 Subject: [PATCH 2/2] Suppress logging from azure.monitor and other azure packages These flood the logs with request traces from the monitoring transports. We only need to know if the monitoring transport fails. --- src/telemetry.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/telemetry.py b/src/telemetry.py index b81386ce..b4c80b3c 100644 --- a/src/telemetry.py +++ b/src/telemetry.py @@ -3,6 +3,14 @@ logger = logging.getLogger(__name__) +# Suppress verbose logging from OpenTelemetry and Azure Monitor libraries +for package_name in [ + "azure.monitor.opentelemetry", + "azure.core.pipeline.policies.http_logging_policy", +]: + package_logger = logging.getLogger(package_name) + package_logger.setLevel(logging.WARNING) + def configure_telemetry(service_name: str | None = None) -> None: """Configure OpenTelemetry with Azure Monitor.