diff --git a/examples/miniapps/monitoring-daemon-asyncio/README.rst b/examples/miniapps/monitoring-daemon-asyncio/README.rst index cfda8b9a..7dbe27ab 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/README.rst +++ b/examples/miniapps/monitoring-daemon-asyncio/README.rst @@ -25,11 +25,11 @@ The output should be something like: Starting monitoring-daemon-asyncio_monitor_1 ... done Attaching to monitoring-daemon-asyncio_monitor_1 - monitor_1 | [2020-08-06 01:57:08,249] [INFO] [monitoringdaemon.dispatcher]: Dispatcher is starting up - monitor_1 | [2020-08-06 01:57:08,249] [INFO] [monitoringdaemon.dispatcher]: Monitoring task has been started monitoringdaemon.monitors.HttpMonitor(url="http://example.com") - monitor_1 | [2020-08-06 01:57:08,249] [INFO] [monitoringdaemon.dispatcher]: Monitoring task has been started monitoringdaemon.monitors.HttpMonitor(url="http://httpbin.org/get") - monitor_1 | [2020-08-06 01:57:08,318] [INFO] [monitoringdaemon.monitors.HttpMonitor(url="http://example.com")]: Response code: 200, content length: 648, request took: 0.067 seconds - monitor_1 | [2020-08-06 01:57:08,363] [INFO] [monitoringdaemon.monitors.HttpMonitor(url="http://httpbin.org/get")]: Response code: 200, content length: 309, request took: 0.112 seconds + monitor_1 | [2020-08-08 02:48:24,906] [INFO] [Dispatcher]: Starting up + monitor_1 | [2020-08-08 02:48:24,980] [INFO] [HttpMonitor]: GET http://example.com, response code: 200, content length: 648, request took: 0.072 seconds + monitor_1 | [2020-08-08 02:48:25,042] [INFO] [HttpMonitor]: GET https://httpbin.org/get, response code: 200, content length: 310, request took: 0.134 seconds + monitor_1 | [2020-08-08 02:48:29,991] [INFO] [HttpMonitor]: GET http://example.com, response code: 200, content length: 648, request took: 0.074 seconds + monitor_1 | [2020-08-08 02:48:30,037] [INFO] [HttpMonitor]: GET https://httpbin.org/get, response code: 200, content length: 310, request took: 0.119 seconds Test ---- diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py index d12c22b9..937dcaa3 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py +++ b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/dispatcher.py @@ -1,4 +1,4 @@ -"""Dispatcher module.""" +""""Dispatcher module.""" import asyncio import logging @@ -9,30 +9,24 @@ from typing import List from .monitors import Monitor -logger = logging.getLogger(__name__) - - class Dispatcher: def __init__(self, monitors: List[Monitor]) -> None: self._monitors = monitors self._monitor_tasks: List[asyncio.Task] = [] + self._logger = logging.getLogger(self.__class__.__name__) self._stopping = False def run(self) -> None: asyncio.run(self.start()) async def start(self) -> None: - logger.info('Dispatcher is starting up') + self._logger.info('Starting up') for monitor in self._monitors: self._monitor_tasks.append( asyncio.create_task(self._run_monitor(monitor)), ) - logger.info( - 'Monitoring task has been started %s', - monitor.full_name, - ) asyncio.get_event_loop().add_signal_handler(signal.SIGTERM, self.stop) asyncio.get_event_loop().add_signal_handler(signal.SIGINT, self.stop) @@ -47,11 +41,10 @@ class Dispatcher: self._stopping = True - logger.info('Dispatcher is shutting down') + self._logger.info('Shutting down') for task, monitor in zip(self._monitor_tasks, self._monitors): task.cancel() - logger.info('Monitoring task has been stopped %s', monitor.full_name) - logger.info('Dispatcher shutting down finished successfully') + self._logger.info('Shutdown finished successfully') @staticmethod async def _run_monitor(monitor: Monitor) -> None: @@ -67,6 +60,6 @@ class Dispatcher: except asyncio.CancelledError: break except Exception: - monitor.logger.exception('Error running monitoring check') + monitor.logger.exception('Error executing monitor check') await asyncio.sleep(_until_next(last=time_start)) diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py index 3ffe71a7..d95007f0 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py +++ b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/monitors.py @@ -11,11 +11,7 @@ class Monitor: def __init__(self, check_every: int) -> None: self.check_every = check_every - self.logger = logging.getLogger(self.full_name) - - @property - def full_name(self) -> str: - raise NotImplementedError() + self.logger = logging.getLogger(self.__class__.__name__) async def check(self) -> None: raise NotImplementedError() @@ -34,10 +30,6 @@ class HttpMonitor(Monitor): self._timeout = options.pop('timeout') super().__init__(check_every=options.pop('check_every')) - @property - def full_name(self) -> str: - return '{0}.{1}(url="{2}")'.format(__name__, self.__class__.__name__, self._url) - async def check(self) -> None: time_start = time.time() @@ -51,7 +43,9 @@ class HttpMonitor(Monitor): time_took = time_end - time_start self.logger.info( - 'Response code: %s, content length: %s, request took: %s seconds', + '%s %s, response code: %s, content length: %s, request took: %s seconds', + self._method, + self._url, response.status, response.content_length, round(time_took, 3) diff --git a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py index 0fca770c..df16e6fa 100644 --- a/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py +++ b/examples/miniapps/monitoring-daemon-asyncio/monitoringdaemon/tests.py @@ -56,7 +56,7 @@ async def test_example_monitor(container, caplog): await example_monitor.check() assert 'http://fake-example.com' in caplog.text - assert 'Response code: 200' in caplog.text + assert 'response code: 200' in caplog.text assert 'content length: 635' in caplog.text