pyfebiopt.monitoring.monitoring_service
=======================================

.. py:module:: pyfebiopt.monitoring.monitoring_service

.. autoapi-nested-parse::

   Controller that wires together registry, event listener, and system stats.



Classes
-------

.. autoapisummary::

   pyfebiopt.monitoring.monitoring_service.MonitoringService


Module Contents
---------------

.. py:class:: MonitoringService(*, registry_path: pathlib.Path | None = None, event_socket: pathlib.Path | None = None, storage_roots: collections.abc.Iterable[pathlib.Path] | None = None, poll_interval: float = 5.0, stats_collector: pyfebiopt.monitoring.system_stats.SystemStatsCollector | None = None, stale_after: float = 180.0, stale_interval: float = 30.0)

   Own the monitor registry, event socket listener, and system stats.

   Initialize registry, listener config, and stats collector.

   :param registry_path: Optional path for the run registry JSON.
   :param event_socket: Optional UNIX socket path for event ingestion.
   :param storage_roots: Optional storage roots to inventory for jobs.
   :param poll_interval: Seconds between inventory refreshes.
   :param stats_collector: Custom collector; defaults to ``SystemStatsCollector``.
   :param stale_after: Seconds before an active run with no process is marked unknown.
   :param stale_interval: Seconds between stale-run sweeps.


   .. py:attribute:: registry


   .. py:attribute:: event_socket


   .. py:attribute:: inventory


   .. py:attribute:: stats


   .. py:method:: start() -> None

      Start the event listener if configured and not already running.



   .. py:method:: stop() -> None

      Stop the event listener if it is running.



   .. py:property:: running
      :type: bool


      Return True when the event listener is active.


