artdaq::MetricPlugin Class Reference

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

List of all members.

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.

Detailed Description

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.


Constructor & Destructor Documentation

artdaq::MetricPlugin::MetricPlugin ( fhicl::ParameterSet const &  ps  )  [inline, explicit]

MetricPlugin Constructor.

Parameters:
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.


Member Function Documentation

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

Send a metric value to the MetricPlugin.

Parameters:
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.

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

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.).

Parameters:
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.).

Parameters:
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.).

Parameters:
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.).

Parameters:
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.).

Parameters:
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.

Parameters:
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.

Parameters:
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.


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

Generated on 15 Apr 2018 for artdaq_utilities by  doxygen 1.6.1