Skip to content
2 changes: 1 addition & 1 deletion src/drunc/apps/ssh_configurator.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

import click
import paramiko
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels
from jinja2 import Template

import drunc as _drunc
Expand Down
2 changes: 1 addition & 1 deletion src/drunc/apps/ssh_doctor.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import click
import conffwk
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels

from drunc.process_manager.oks_parser import collect_apps
from drunc.processes.ssh_process_lifetime_manager_paramiko import (
Expand Down
2 changes: 1 addition & 1 deletion src/drunc/apps/ssh_validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import click
import conffwk
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels
from sh import Command

from drunc.process_manager.oks_parser import collect_apps
Expand Down
5 changes: 3 additions & 2 deletions src/drunc/controller/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from concurrent.futures import ThreadPoolExecutor, as_completed
from typing import Callable, List, TypeVar

from daqpytools.logging.handlers import LogHandlerConf
from daqpytools.logging import LogHandlerConf, setup_daq_ers_logger
from druncschema.authoriser_pb2 import ActionType, SystemType
from druncschema.broadcast_pb2 import BroadcastType
from druncschema.controller_pb2 import (
Expand Down Expand Up @@ -86,7 +86,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=False)
self.log = get_logger(f"controller.core.{name}_ctrl")
setup_daq_ers_logger(self.log, session, f"drunc.{name}_ctrl")
log_init = get_logger("controller.core.__init__")
log_init.info(f"Initialising controller '{name}' with session '{session}'")

Expand Down
2 changes: 1 addition & 1 deletion src/drunc/controller/interface/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import click
import grpc
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels
from druncschema.controller_pb2_grpc import add_ControllerServicer_to_server
from druncschema.token_pb2 import Token

Expand Down
2 changes: 1 addition & 1 deletion src/drunc/controller/interface/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import click
import click_shell
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels

from drunc.controller.interface.commands import (
connect,
Expand Down
5 changes: 2 additions & 3 deletions src/drunc/process_manager/interface/process_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

import click
import grpc
from daqpytools.logging.handlers import add_file_handler
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import HandlerType, add_handler, logging_log_levels
from druncschema.process_manager_pb2_grpc import add_ProcessManagerServicer_to_server

from drunc.exceptions import DruncSetupException
Expand Down Expand Up @@ -75,7 +74,7 @@ def run_pm(
)

# Logger has been added to process_manager, so everything will be logged
add_file_handler(log, use_parent_handlers=True, path=log_path)
add_handler(log, HandlerType.File, True, path=log_path)

for key, value in pmch.data.environment.items():
os.environ[key] = value
Expand Down
5 changes: 2 additions & 3 deletions src/drunc/process_manager/interface/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@

import click
import click_shell
from daqpytools.logging.handlers import add_file_handler
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import HandlerType, add_handler, logging_log_levels

from drunc.process_manager.interface.commands import (
boot,
Expand Down Expand Up @@ -64,7 +63,7 @@ def process_manager_shell(ctx, process_manager_address: str, log_level: str) ->
# Not possible to initialise logger immediately as it requires
# knowledge of the log path
if desc.info:
add_file_handler(process_manager_log, use_parent_handlers=True, path=desc.info)
add_handler(process_manager_log, HandlerType.File, True, path=desc.info)

process_manager_log.info(
f"[green]{getpass.getuser()}[/green] connected to the process manager through a [green]drunc-process-manager-shell[/green] via address [green]{process_manager_address}[/green]"
Expand Down
27 changes: 21 additions & 6 deletions src/drunc/process_manager/process_manager.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import abc
import re
import sys
import threading
import time

from daqpytools.logging.handlers import HandlerType, LogHandlerConf
from daqpytools.logging import LogHandlerConf, exceptions, setup_daq_ers_logger
from druncschema.authoriser_pb2 import ActionType, SystemType
from druncschema.broadcast_pb2 import BroadcastType
from druncschema.description_pb2 import CommandDescription, Description
Expand Down Expand Up @@ -61,14 +62,24 @@ def __init__(
"""C'tor. Note that this takes the ERS env variables from the
json files defined in data/process_manager!"""
super().__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,
)
self.log.debug(pid_info_str())
self.log.debug("Initialized ProcessManager")

# Validate that the ERS configuration is valid
try:
self.handlerconf = LogHandlerConf(init_ers=True)
except exceptions.ERSEnvError as e:
self.log.error(
f"Failed to set up ERS logger for process manager: [red]{e}[/red]"
)
sys.exit(1)

self.ers_handler_initialized: bool = False

self.configuration = configuration
self.name = name
self.session = session
Expand Down Expand Up @@ -226,9 +237,13 @@ 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]})
err_msg = f"Process {pi.process_description.metadata.name} has died with a return code {pi.return_code}"
if not self.ers_handler_initialized:
setup_daq_ers_logger(
self.log,
pi.process_description.metadata.session,
"drunc.process_manager",
)
self.log.critical(err_msg, extra=self.handlerconf.ERS)

time.sleep(interval_s)
Expand Down
2 changes: 1 addition & 1 deletion src/drunc/unified_shell/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import click
import click_shell
import conffwk
from daqpytools.logging.levels import logging_log_levels
from daqpytools.logging import logging_log_levels
from druncschema.description_pb2 import Description
from druncschema.process_manager_pb2 import ProcessQuery

Expand Down
2 changes: 1 addition & 1 deletion src/drunc/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from urllib.parse import urlparse

from click import BadParameter
from daqpytools.logging.logger import get_daq_logger, setup_root_logger
from daqpytools.logging import get_daq_logger, setup_root_logger
from requests import delete, get, patch, post
from rich.progress import (
BarColumn,
Expand Down
Loading