artdaq_utilities  v1_04_06
artdaq::MetricPlugin Class Referenceabstract

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>

Inheritance diagram for artdaq::MetricPlugin:
artdaq::FileMetric artdaq::GraphiteMetric artdaq::MsgFacilityMetric artdaq::ProcFileMetric

Classes

struct  Config
 

Public Member Functions

 MetricPlugin (fhicl::ParameterSet const &ps, std::string const &app_name)
 MetricPlugin Constructor. More...
 
virtual ~MetricPlugin ()=default
 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. More...
 
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. More...
 
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. More...
 
int getRunLevel () const
 Get the threshold for sending metrics to the underlying storage. More...
 

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.) More...
 
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.) More...
 
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.) More...
 
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.) More...
 
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.) More...
 
virtual void startMetrics_ ()=0
 Perform any start-up actions necessary for the metric plugin. More...
 
virtual void stopMetrics_ ()=0
 Perform any shutdown actions necessary for the metric plugin. More...
 

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.
 
std::string app_name_
 Name of the application which is sending metrics to this plugin.
 
bool inhibit_
 Whether to inhibit all metric sending.
 

Detailed Description

The MetricPlugin class defines the interface that MetricManager uses to send metric data to the various metric plugins.

Definition at line 32 of file MetricPlugin.hh.

Constructor & Destructor Documentation

artdaq::MetricPlugin::MetricPlugin ( fhicl::ParameterSet const &  ps,
std::string const &  app_name 
)
inlineexplicit

MetricPlugin Constructor.

Parameters
psThe 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 58 of file MetricPlugin.hh.

Member Function Documentation

void artdaq::MetricPlugin::addMetricData ( MetricData  data)
inline

Send a metric value to the MetricPlugin.

Parameters
dataA MetricData struct containing the metric value

Definition at line 156 of file MetricPlugin.hh.

int artdaq::MetricPlugin::getRunLevel ( ) const
inline

Get the threshold for sending metrics to the underlying storage.

Returns
The threshold for sending metrics to the underlying storage. Metrics with level <= to runLevel_ will be sent.

Definition at line 340 of file MetricPlugin.hh.

virtual void artdaq::MetricPlugin::sendMetric_ ( const std::string &  name,
const std::string &  value,
const std::string &  unit 
)
protectedpure virtual

Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.)

Parameters
nameName of the metric
valueValue of the metric
unitUnits for the metric

Note this is a pure virtual function, it should be overridden by implementation plugins

Implemented in artdaq::FileMetric, artdaq::MsgFacilityMetric, artdaq::GraphiteMetric, and artdaq::ProcFileMetric.

virtual void artdaq::MetricPlugin::sendMetric_ ( const std::string &  name,
const int &  value,
const std::string &  unit 
)
protectedpure virtual

Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.)

Parameters
nameName of the metric
valueValue of the metric
unitUnits for the metric

Note this is a pure virtual function, it should be overridden by implementation plugins

Implemented in artdaq::MsgFacilityMetric, artdaq::FileMetric, artdaq::GraphiteMetric, and artdaq::ProcFileMetric.

virtual void artdaq::MetricPlugin::sendMetric_ ( const std::string &  name,
const double &  value,
const std::string &  unit 
)
protectedpure virtual

Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.)

Parameters
nameName of the metric
valueValue of the metric
unitUnits for the metric

Note this is a pure virtual function, it should be overridden by implementation plugins

Implemented in artdaq::MsgFacilityMetric, artdaq::FileMetric, artdaq::GraphiteMetric, and artdaq::ProcFileMetric.

virtual void artdaq::MetricPlugin::sendMetric_ ( const std::string &  name,
const float &  value,
const std::string &  unit 
)
protectedpure virtual

Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.)

Parameters
nameName of the metric
valueValue of the metric
unitUnits for the metric

Note this is a pure virtual function, it should be overridden by implementation plugins

Implemented in artdaq::MsgFacilityMetric, artdaq::FileMetric, artdaq::GraphiteMetric, and artdaq::ProcFileMetric.

virtual void artdaq::MetricPlugin::sendMetric_ ( const std::string &  name,
const long unsigned int &  value,
const std::string &  unit 
)
protectedpure virtual

Send a metric to the underlying metric storage (file, Graphite, Ganglia, etc.)

Parameters
nameName of the metric
valueValue of the metric
unitUnits for the metric

Note this is a pure virtual function, it should be overridden by implementation plugins

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.

Parameters
forceSend(Default = false): Force sending metrics, even if reporting interval has not elapsed

Definition at line 177 of file MetricPlugin.hh.

void artdaq::MetricPlugin::setRunLevel ( int  level)
inline

Set the threshold for sending metrics to the underlying storage.

Parameters
levelThe new threshold for sending metrics to the underlying storage. Metrics with level <= to runLevel_ will be sent.

Definition at line 335 of file MetricPlugin.hh.

virtual void artdaq::MetricPlugin::startMetrics_ ( )
protectedpure 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::MsgFacilityMetric, artdaq::FileMetric, artdaq::GraphiteMetric, and artdaq::ProcFileMetric.

virtual void artdaq::MetricPlugin::stopMetrics_ ( )
protectedpure 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::GraphiteMetric, artdaq::FileMetric, artdaq::MsgFacilityMetric, and artdaq::ProcFileMetric.


The documentation for this class was generated from the following file: