Skip to content

Draft: Monitoring using Gaudi Accumulators

Daniel Charles Craik requested to merge dcraik_gaudi_monitoring into master

Added ability to fill Gaudi Accumulators (currently only Gaudi::Accumulators::Counter<> is supported) within Algorithms. Gaudi::Monitoring::Hub used to register all Accumulators with the MonitoringAggregator, which implements the Gaudi::Monitoring::Hub::Sink interface and is responsible for aggregating separate copies from all Streams into a single Accumulator. This aggregation is then registered with any downstream Sinks. MonitoringPrinter is a simple example of a downstream Sink, which prints out all aggregated counters to the terminal periodically. Both MonitoringAggregator and MonitoringPrinter run within a separate aggregation thread, which loops every 997ms to keep it out of sync with anything that runs at integer second intervals. ServiceLocator added to Algorithm to allow Allen Algorithms to act as OWNERs of Gaudi Accumulators.

As an initial example, Counters added to GatherSelections for all active trigger lines.

STANDALONE build should be unaffected by the changes.

Note that this branch requires the version of Gaudi from this MR: gaudi/Gaudi!1253 (merged)

Also depends on: gaudi/Gaudi!1266 (merged)

Edited by Daniel Campora Perez

Merge request reports