The MetricPlugin class defines the interface that MetricManager uses to send metric data to the various metric plugins. More...
#include <artdaq-utilities/Plugins/MetricPlugin.hh>
Public Member Functions | |
MetricPlugin (fhicl::ParameterSet const &ps) | |
MetricPlugin Constructor. | |
virtual | ~MetricPlugin () |
Default virtual Desctructor. | |
virtual std::string | getLibName () const |
Return the name of the current MetricPlugin instance. | |
void | addMetricData (MetricData data) |
Send a metric value to the MetricPlugin. | |
void | sendMetrics (bool forceSend=false, std::chrono::steady_clock::time_point interval_end=std::chrono::steady_clock::now()) |
For each known metric, determine whether the reporting interval has elapsed, and if so, report a value to the underlying metric storage. | |
void | startMetrics () |
Perform startup actions. Simply calls the virtual startMetrics_ function. | |
void | stopMetrics () |
Perform shutdown actions. Zeroes out all accumulators, and sends zeros for each metric. Calls stopMetrics_() for any plugin-defined shutdown actions. | |
void | setRunLevel (int level) |
Set the threshold for sending metrics to the underlying storage. | |
int | getRunLevel () const |
Get the threshold for sending metrics to the underlying storage. | |
Protected Member Functions | |
virtual void | sendMetric_ (const std::string &name, const std::string &value, const std::string &unit)=0 |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.). | |
virtual void | sendMetric_ (const std::string &name, const int &value, const std::string &unit)=0 |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.). | |
virtual void | sendMetric_ (const std::string &name, const double &value, const std::string &unit)=0 |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.). | |
virtual void | sendMetric_ (const std::string &name, const float &value, const std::string &unit)=0 |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.). | |
virtual void | sendMetric_ (const std::string &name, const long unsigned int &value, const std::string &unit)=0 |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.). | |
virtual void | startMetrics_ ()=0 |
Perform any start-up actions necessary for the metric plugin. | |
virtual void | stopMetrics_ ()=0 |
Perform any shutdown actions necessary for the metric plugin. | |
Protected Attributes | |
int | runLevel_ |
The threshold for sending metrics to the underlying storage. Metrics with level <= to runLevel_ will be sent. | |
fhicl::ParameterSet | pset |
The ParameterSet used to configure the MetricPlugin. | |
double | accumulationTime_ |
The amount of time to average metric values; except for accumulate=false metrics, will be the interval at which each metric is sent. | |
bool | inhibit_ |
Whether to inhibit all metric sending. |
The MetricPlugin class defines the interface that MetricManager uses to send metric data to the various metric plugins.
Definition at line 27 of file MetricPlugin.hh.
artdaq::MetricPlugin::MetricPlugin | ( | fhicl::ParameterSet const & | ps | ) | [inline, explicit] |
MetricPlugin Constructor.
ps | The ParameterSet used to configure this MetricPlugin instance |
* MetricPlugin accepts the following parameters: * "metricPluginType": The name of the plugin to load * "level" (Default: 0): The verbosity level of the metric plugin. Higher number = fewer metrics sent to the metric storage * "reporting_interval" (Default: 15.0): The interval, in seconds, which the metric plugin will accumulate values for. * Calling sendMetric with the accumulate parameter set to false will bypass this accumulation and directly send the * metric. String metrics cannot be accumulated. *
Definition at line 43 of file MetricPlugin.hh.
void artdaq::MetricPlugin::addMetricData | ( | MetricData | data | ) | [inline] |
Send a metric value to the MetricPlugin.
data | A MetricData struct containing the metric value |
Definition at line 140 of file MetricPlugin.hh.
int artdaq::MetricPlugin::getRunLevel | ( | ) | const [inline] |
Get the threshold for sending metrics to the underlying storage.
Definition at line 324 of file MetricPlugin.hh.
virtual void artdaq::MetricPlugin::sendMetric_ | ( | const std::string & | name, | |
const long unsigned int & | value, | |||
const std::string & | unit | |||
) | [protected, pure virtual] |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.).
name | Name of the metric | |
value | Value of the metric | |
unit | Units for the metric |
Note this is a pure virtual function, it should be overridden by implementation plugins
virtual void artdaq::MetricPlugin::sendMetric_ | ( | const std::string & | name, | |
const float & | value, | |||
const std::string & | unit | |||
) | [protected, pure virtual] |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.).
name | Name of the metric | |
value | Value of the metric | |
unit | Units for the metric |
Note this is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.
virtual void artdaq::MetricPlugin::sendMetric_ | ( | const std::string & | name, | |
const double & | value, | |||
const std::string & | unit | |||
) | [protected, pure virtual] |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.).
name | Name of the metric | |
value | Value of the metric | |
unit | Units for the metric |
Note this is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.
virtual void artdaq::MetricPlugin::sendMetric_ | ( | const std::string & | name, | |
const int & | value, | |||
const std::string & | unit | |||
) | [protected, pure virtual] |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.).
name | Name of the metric | |
value | Value of the metric | |
unit | Units for the metric |
Note this is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.
virtual void artdaq::MetricPlugin::sendMetric_ | ( | const std::string & | name, | |
const std::string & | value, | |||
const std::string & | unit | |||
) | [protected, pure virtual] |
Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.).
name | Name of the metric | |
value | Value of the metric | |
unit | Units for the metric |
Note this is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.
void artdaq::MetricPlugin::sendMetrics | ( | bool | forceSend = false , |
|
std::chrono::steady_clock::time_point | interval_end = std::chrono::steady_clock::now() | |||
) | [inline] |
For each known metric, determine whether the reporting interval has elapsed, and if so, report a value to the underlying metric storage.
forceSend | (Default = false): Force sending metrics, even if reporting interval has not elapsed |
Definition at line 161 of file MetricPlugin.hh.
void artdaq::MetricPlugin::setRunLevel | ( | int | level | ) | [inline] |
Set the threshold for sending metrics to the underlying storage.
level | The new threshold for sending metrics to the underlying storage. Metrics with level <= to runLevel_ will be sent. |
Definition at line 319 of file MetricPlugin.hh.
virtual void artdaq::MetricPlugin::startMetrics_ | ( | ) | [protected, pure virtual] |
Perform any start-up actions necessary for the metric plugin.
This is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.
virtual void artdaq::MetricPlugin::stopMetrics_ | ( | ) | [protected, pure virtual] |
Perform any shutdown actions necessary for the metric plugin.
This is a pure virtual function, it should be overridden by implementation plugins
Implemented in artdaq::FileMetric, artdaq::GraphiteMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.