artdaq_utilities
v1_05_00
|
The MetricManager class handles loading metric plugins and asynchronously sending metric data to them. It is designed to be a "black hole" for metrics, taking as little time as possible so that metrics do not impact the data-taking performance. More...
#include <artdaq-utilities/Plugins/MetricManager.hh>
Classes | |
struct | Config |
The Config struct defines the accepted configuration parameters for this class. More... | |
Public Types | |
using | Parameters = fhicl::WrappedTable< Config > |
Used for ParameterSet validation (if desired) | |
Public Member Functions | |
MetricManager () | |
Construct an instance of the MetricManager class. | |
MetricManager (MetricManager const &)=delete | |
Copy Constructor is deleted. | |
virtual | ~MetricManager () noexcept |
MetricManager destructor. More... | |
MetricManager & | operator= (MetricManager const &)=delete |
Copy Assignment operator is deleted. More... | |
void | initialize (fhicl::ParameterSet const &pset, std::string const &prefix="") |
Initialize the MetricPlugin instances. More... | |
void | do_start () |
Perform startup actions for each configured MetricPlugin. | |
void | do_stop () |
Stop sending metrics to the MetricPlugin instances. | |
void | do_pause () |
Pause metric sending. Currently a No-Op. | |
void | do_resume () |
Resume metric sending. Currently a No-Op. | |
void | reinitialize (fhicl::ParameterSet const &pset, std::string const &prefix="") |
Reinitialize all MetricPlugin Instances. More... | |
void | shutdown () |
Call the destructors for all configured MetricPlugin instances. | |
void | sendMetric (std::string const &name, std::string const &value, std::string const &unit, int level, MetricMode mode, std::string const &metricPrefix="", bool useNameOverride=false) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level. More... | |
void | sendMetric (std::string const &name, int const &value, std::string const &unit, int level, MetricMode mode, std::string const &metricPrefix="", bool useNameOverride=false) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level. More... | |
void | sendMetric (std::string const &name, double const &value, std::string const &unit, int level, MetricMode mode, std::string const &metricPrefix="", bool useNameOverride=false) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level. More... | |
void | sendMetric (std::string const &name, float const &value, std::string const &unit, int level, MetricMode mode, std::string const &metricPrefix="", bool useNameOverride=false) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level. More... | |
void | sendMetric (std::string const &name, long unsigned int const &value, std::string const &unit, int level, MetricMode mode, std::string const &metricPrefix="", bool useNameOverride=false) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level. More... | |
void | setPrefix (std::string const &prefix) |
Sets the prefix prepended to all metrics without useNameOverride set. More... | |
bool | Initialized () |
Returns whether the MetricManager has been initialized (configured) More... | |
bool | Running () |
Returns whether the MetricManager is running (accepting metric calls) More... | |
bool | Active () |
Returns whether any Metric Plugins are defined and configured More... | |
bool | metricQueueEmpty () |
Returns whether the metric queue is completely empty More... | |
size_t | metricQueueSize (std::string const &name="") |
Return the size of the named metric queue More... | |
The MetricManager class handles loading metric plugins and asynchronously sending metric data to them. It is designed to be a "black hole" for metrics, taking as little time as possible so that metrics do not impact the data-taking performance.
Definition at line 34 of file MetricManager.hh.
|
virtualnoexcept |
|
inline |
Returns whether any Metric Plugins are defined and configured
Definition at line 245 of file MetricManager.hh.
void artdaq::MetricManager::initialize | ( | fhicl::ParameterSet const & | pset, |
std::string const & | prefix = "" |
||
) |
Initialize the MetricPlugin instances.
pset | The ParameterSet used to configure the MetricPlugin instances |
prefix | The prefix to prepend to all metric names, unless useNameOverride is set to true |
The ParameterSet should be a collection of tables, each configuring a MetricPlugin. See the MetricPlugin documentation for how to configure a MetricPlugin. "metric_queue_size": (Default: 1000): The maximum number of metric entries which can be stored in the metric queue. "metric_queue_notify_size": (Default: 10): The number of metric entries in the list which will cause reports of the queue size to be printed. "metric_send_maximum_delay_ms": (Default: 15000): The maximum amount of time between metric send calls (will send 0s for metrics which have not reported in this interval) If the queue is above this size, new metric entries will be dropped until the plugins catch up.
Definition at line 23 of file MetricManager.cc.
|
inline |
Returns whether the MetricManager has been initialized (configured)
Definition at line 233 of file MetricManager.hh.
bool artdaq::MetricManager::metricQueueEmpty | ( | ) |
Returns whether the metric queue is completely empty
Definition at line 438 of file MetricManager.cc.
size_t artdaq::MetricManager::metricQueueSize | ( | std::string const & | name = "" | ) |
Return the size of the named metric queue
name | Name of the metric queue to query. "" returns size of all queues (default) |
Definition at line 444 of file MetricManager.cc.
|
delete |
Copy Assignment operator is deleted.
void artdaq::MetricManager::reinitialize | ( | fhicl::ParameterSet const & | pset, |
std::string const & | prefix = "" |
||
) |
Reinitialize all MetricPlugin Instances.
pset | ParameterSet used to configure the MetricPlugin instances |
prefix | Prefix to apply to Metric names |
Calls shutdown(), then initialize(pset, prefix).
Definition at line 153 of file MetricManager.cc.
|
inline |
Returns whether the MetricManager is running (accepting metric calls)
Definition at line 239 of file MetricManager.hh.
void artdaq::MetricManager::sendMetric | ( | std::string const & | name, |
std::string const & | value, | ||
std::string const & | unit, | ||
int | level, | ||
MetricMode | mode, | ||
std::string const & | metricPrefix = "" , |
||
bool | useNameOverride = false |
||
) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level.
name | The Name of the metric |
value | The value of the metric |
unit | The units of the metric |
level | The verbosity level of the metric. Higher number == more verbose |
mode | The MetricMode that the metric should operate in. Options are: LastPoint: Every reporting_interval, the latest metric value is sent (For run/event numbers, etc) Accumulate: Every reporting_interval, the sum of all metric values since the last report is sent (for counters) Average: Every reporting_interval, the average of all metric values since the last report is sent (for rates) |
metricPrefix | An additional prefix to prepend to the metric name |
useNameOverride | Whether to use name verbatim and not apply prefixes |
Definition at line 186 of file MetricManager.cc.
void artdaq::MetricManager::sendMetric | ( | std::string const & | name, |
int const & | value, | ||
std::string const & | unit, | ||
int | level, | ||
MetricMode | mode, | ||
std::string const & | metricPrefix = "" , |
||
bool | useNameOverride = false |
||
) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level.
name | The Name of the metric |
value | The value of the metric |
unit | The units of the metric |
level | The verbosity level of the metric. Higher number == more verbose |
mode | The MetricMode that the metric should operate in. Options are: LastPoint: Every reporting_interval, the latest metric value is sent (For run/event numbers, etc) Accumulate: Every reporting_interval, the sum of all metric values since the last report is sent (for counters) Average: Every reporting_interval, the average of all metric values since the last report is sent (for rates) |
metricPrefix | An additional prefix to prepend to the metric name |
useNameOverride | Whether to use name verbatim and not apply prefixes |
Definition at line 240 of file MetricManager.cc.
void artdaq::MetricManager::sendMetric | ( | std::string const & | name, |
double const & | value, | ||
std::string const & | unit, | ||
int | level, | ||
MetricMode | mode, | ||
std::string const & | metricPrefix = "" , |
||
bool | useNameOverride = false |
||
) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level.
name | The Name of the metric |
value | The value of the metric |
unit | The units of the metric |
level | The verbosity level of the metric. Higher number == more verbose |
mode | The MetricMode that the metric should operate in. Options are: LastPoint: Every reporting_interval, the latest metric value is sent (For run/event numbers, etc) Accumulate: Every reporting_interval, the sum of all metric values since the last report is sent (for counters) Average: Every reporting_interval, the average of all metric values since the last report is sent (for rates) |
metricPrefix | An additional prefix to prepend to the metric name |
useNameOverride | Whether to use name verbatim and not apply prefixes |
Definition at line 284 of file MetricManager.cc.
void artdaq::MetricManager::sendMetric | ( | std::string const & | name, |
float const & | value, | ||
std::string const & | unit, | ||
int | level, | ||
MetricMode | mode, | ||
std::string const & | metricPrefix = "" , |
||
bool | useNameOverride = false |
||
) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level.
name | The Name of the metric |
value | The value of the metric |
unit | The units of the metric |
level | The verbosity level of the metric. Higher number == more verbose |
mode | The MetricMode that the metric should operate in. Options are: LastPoint: Every reporting_interval, the latest metric value is sent (For run/event numbers, etc) Accumulate: Every reporting_interval, the sum of all metric values since the last report is sent (for counters) Average: Every reporting_interval, the average of all metric values since the last report is sent (for rates) |
metricPrefix | An additional prefix to prepend to the metric name |
useNameOverride | Whether to use name verbatim and not apply prefixes |
Definition at line 328 of file MetricManager.cc.
void artdaq::MetricManager::sendMetric | ( | std::string const & | name, |
long unsigned int const & | value, | ||
std::string const & | unit, | ||
int | level, | ||
MetricMode | mode, | ||
std::string const & | metricPrefix = "" , |
||
bool | useNameOverride = false |
||
) |
Send a metric with the given parameters to any MetricPlugins with a threshold level >= to level.
name | The Name of the metric |
value | The value of the metric |
unit | The units of the metric |
level | The verbosity level of the metric. Higher number == more verbose |
mode | The MetricMode that the metric should operate in. Options are: LastPoint: Every reporting_interval, the latest metric value is sent (For run/event numbers, etc) Accumulate: Every reporting_interval, the sum of all metric values since the last report is sent (for counters) Average: Every reporting_interval, the average of all metric values since the last report is sent (for rates) |
metricPrefix | An additional prefix to prepend to the metric name |
useNameOverride | Whether to use name verbatim and not apply prefixes |
Definition at line 372 of file MetricManager.cc.
|
inline |
Sets the prefix prepended to all metrics without useNameOverride set.
prefix | The prefix to prepend. Delimiter character in names is "." |
Definition at line 227 of file MetricManager.hh.