From d4c35ff0f483e17fa6f9790991487794cfd51d08 Mon Sep 17 00:00:00 2001 From: Emir Muhammad Date: Mon, 16 Feb 2026 19:04:34 +0100 Subject: [PATCH 1/4] use ability to use session name in ers --- src/drunc/controller/controller.py | 2 +- src/drunc/process_manager/process_manager.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drunc/controller/controller.py b/src/drunc/controller/controller.py index c579fa01c..940923239 100644 --- a/src/drunc/controller/controller.py +++ b/src/drunc/controller/controller.py @@ -86,7 +86,7 @@ def __init__(self, configuration, name: str, session: str, token: Token): self.broadcast_service = None self.monitoring_metrics = ControllerMonitoringMetrics() self.handlerconf = LogHandlerConf(init_ers=True) - self.log = get_logger(f"controller.core.{name}_ctrl", ers_kafka_handler=False) + self.log = get_logger(f"controller.core.{name}_ctrl", ers_kafka_handler=session) log_init = get_logger("controller.core.__init__") log_init.info(f"Initialising controller '{name}' with session '{session}'") diff --git a/src/drunc/process_manager/process_manager.py b/src/drunc/process_manager/process_manager.py index f15bd20ab..c30f27a09 100644 --- a/src/drunc/process_manager/process_manager.py +++ b/src/drunc/process_manager/process_manager.py @@ -64,7 +64,7 @@ def __init__( self.handlerconf = LogHandlerConf(init_ers=True) self.log = get_logger( f"process_manager.{configuration.get_data_type_name()}_process_manager", - ers_kafka_handler=False, + ers_kafka_handler=session, ) self.log.debug(pid_info_str()) self.log.debug("Initialized ProcessManager") From 165eee719a3d8d50f28b3709b436a73762bac48e Mon Sep 17 00:00:00 2001 From: Emir Muhammad Date: Thu, 19 Feb 2026 11:24:23 +0100 Subject: [PATCH 2/4] Add new setup_daq_ers_logger to drunc --- src/drunc/controller/controller.py | 4 +++- src/drunc/process_manager/process_manager.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/drunc/controller/controller.py b/src/drunc/controller/controller.py index 940923239..a244e4b7d 100644 --- a/src/drunc/controller/controller.py +++ b/src/drunc/controller/controller.py @@ -5,6 +5,7 @@ from typing import Callable, List, TypeVar from daqpytools.logging.handlers import LogHandlerConf +from daqpytools.logging.logger import setup_daq_ers_logger from druncschema.authoriser_pb2 import ActionType, SystemType from druncschema.broadcast_pb2 import BroadcastType from druncschema.controller_pb2 import ( @@ -86,7 +87,8 @@ def __init__(self, configuration, name: str, session: str, token: Token): self.broadcast_service = None self.monitoring_metrics = ControllerMonitoringMetrics() self.handlerconf = LogHandlerConf(init_ers=True) - self.log = get_logger(f"controller.core.{name}_ctrl", ers_kafka_handler=session) + self.log = get_logger(f"controller.core.{name}_ctrl") + setup_daq_ers_logger(self.log, session) log_init = get_logger("controller.core.__init__") log_init.info(f"Initialising controller '{name}' with session '{session}'") diff --git a/src/drunc/process_manager/process_manager.py b/src/drunc/process_manager/process_manager.py index c30f27a09..82433f2ed 100644 --- a/src/drunc/process_manager/process_manager.py +++ b/src/drunc/process_manager/process_manager.py @@ -4,6 +4,7 @@ import time from daqpytools.logging.handlers import HandlerType, LogHandlerConf +from daqpytools.logging.logger import setup_daq_ers_logger from druncschema.authoriser_pb2 import ActionType, SystemType from druncschema.broadcast_pb2 import BroadcastType from druncschema.description_pb2 import CommandDescription, Description @@ -64,8 +65,8 @@ def __init__( self.handlerconf = LogHandlerConf(init_ers=True) self.log = get_logger( f"process_manager.{configuration.get_data_type_name()}_process_manager", - ers_kafka_handler=session, ) + setup_daq_ers_logger(self.log, session) self.log.debug(pid_info_str()) self.log.debug("Initialized ProcessManager") From bc07fdb914242b7c667b4de90b3c4f9a392d4013 Mon Sep 17 00:00:00 2001 From: Emir Muhammad Date: Thu, 19 Feb 2026 12:23:35 +0100 Subject: [PATCH 3/4] Remove duplicating ers log msg --- src/drunc/process_manager/process_manager.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/drunc/process_manager/process_manager.py b/src/drunc/process_manager/process_manager.py index 82433f2ed..af5c7d075 100644 --- a/src/drunc/process_manager/process_manager.py +++ b/src/drunc/process_manager/process_manager.py @@ -3,7 +3,7 @@ import threading import time -from daqpytools.logging.handlers import HandlerType, LogHandlerConf +from daqpytools.logging.handlers import LogHandlerConf from daqpytools.logging.logger import setup_daq_ers_logger from druncschema.authoriser_pb2 import ActionType, SystemType from druncschema.broadcast_pb2 import BroadcastType @@ -228,8 +228,6 @@ def find_by_uuid(pi_list, target_uuid: str): continue pi = find_by_uuid(results, diff) err_msg = f"Process {pi.process_description.metadata.name} with UUID {pi.uuid.uuid} has died with a return code {pi.return_code}" - # easiest way to send one to Rich and ERS - self.log.critical(err_msg, extra={"handlers": [HandlerType.Rich]}) self.log.critical(err_msg, extra=self.handlerconf.ERS) time.sleep(interval_s) From f5c72e8988d3537ebfd7e98cfb58edc658dd1edd Mon Sep 17 00:00:00 2001 From: Emir Muhammad Date: Mon, 23 Feb 2026 17:42:42 +0100 Subject: [PATCH 4/4] Fix pytest; set setup_daq_ers_logger to no-op --- .../test_process_manager_endpoints.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/process_manager/test_process_manager_endpoints.py b/tests/process_manager/test_process_manager_endpoints.py index 92d1e4d08..67585d9ce 100644 --- a/tests/process_manager/test_process_manager_endpoints.py +++ b/tests/process_manager/test_process_manager_endpoints.py @@ -61,18 +61,20 @@ def grpc_servicer(mock_logger, monkeypatch): # Injecting them in the test monkeypatch.setenv( "DUNEDAQ_ERS_ERROR", - "erstrace,throttle,lstdout,protobufstream(monkafka.cern.ch:30092)", - ) - monkeypatch.setenv( - "DUNEDAQ_ERS_FATAL", "erstrace,lstdout,protobufstream(monkafka.cern.ch:30092)" + "rich", ) + monkeypatch.setenv("DUNEDAQ_ERS_FATAL", "rich") monkeypatch.setenv( "DUNEDAQ_ERS_INFO", - "erstrace,throttle,lstdout,protobufstream(monkafka.cern.ch:30092)", + "rich", ) monkeypatch.setenv( "DUNEDAQ_ERS_WARNING", - "erstrace,throttle,lstdout,protobufstream(monkafka.cern.ch:30092)", + "rich", + ) + monkeypatch.setattr( + "drunc.process_manager.process_manager.setup_daq_ers_logger", + lambda *args, **kwargs: None, ) servicer = ConcreteProcessManager(session="mock_session")