artdaq_utilities  v1_05_00
artdaq::GraphiteMetric Class Reference

Send a metric to Graphite. More...

Inheritance diagram for artdaq::GraphiteMetric:
artdaq::MetricPlugin

Public Member Functions

 GraphiteMetric (fhicl::ParameterSet const &config, std::string const &app_name)
 GraphiteMetric Constructor. More...
 
virtual ~GraphiteMetric ()
 GraphiteMetric Destructor. Calls stopMetrics()
 
std::string getLibName () const override
 Get the library name for the Graphite metric. More...
 
void sendMetric_ (const std::string &name, const std::string &value, const std::string &) override
 Send a metric to Graphite. More...
 
void sendMetric_ (const std::string &name, const int &value, const std::string &unit) override
 Send a metric to Graphite. More...
 
void sendMetric_ (const std::string &name, const double &value, const std::string &unit) override
 Send a metric to Graphite. More...
 
void sendMetric_ (const std::string &name, const float &value, const std::string &unit) override
 Send a metric to Graphite. More...
 
void sendMetric_ (const std::string &name, const unsigned long int &value, const std::string &unit) override
 Send a metric to Graphite. More...
 
void startMetrics_ () override
 Perform startup actions. For Graphite, this means reconnecting the socket.
 
void stopMetrics_ () override
 Perform shutdown actions. This shuts down the socket and closes it.
 
- Public Member Functions inherited from artdaq::MetricPlugin
 MetricPlugin (fhicl::ParameterSet const &ps, std::string const &app_name)
 MetricPlugin Constructor. More...
 
virtual ~MetricPlugin ()=default
 Default virtual Desctructor.
 
void addMetricData (std::unique_ptr< MetricData > const &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.
 
bool IsLevelEnabled (int level)
 Determine if the given level is enabled for this MetricPlugin instance. More...
 

Additional Inherited Members

- Public Types inherited from artdaq::MetricPlugin
using Parameters = fhicl::WrappedTable< Config >
 Used for ParameterSet validation (if desired)
 
- Protected Member Functions inherited from artdaq::MetricPlugin
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...
 
- Protected Attributes inherited from artdaq::MetricPlugin
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_
 Flag to indicate that the MetricPlugin is being stopped, and any metric back-ends which do not have a persistent state (i.e. file) should not report further metrics.
 
std::bitset< 64 > level_mask_
 Bitset indicating for each possible metric level, whether this plugin will receive those metrics.
 

Detailed Description

Send a metric to Graphite.

Graphite accepts metrics in a tree hiereachy, using '.' as a delimiter. Therefore, the metric artdaq.BoardReader.Fragment_Rate will appear in Graphite as: artdaq/ BoardReader/ Fragment_Rate

This plugin sends TCP messages with the following content: [name] [value] [timestamp], units are discarded

Definition at line 31 of file graphite_metric.cc.

Constructor & Destructor Documentation

artdaq::GraphiteMetric::GraphiteMetric ( fhicl::ParameterSet const &  config,
std::string const &  app_name 
)
inlineexplicit

GraphiteMetric Constructor.

Parameters
configParameterSet used to configure GraphiteMetric
app_nameName of the application sending metrics
* GraphiteMetric accepts the following Parameters:
* "host" (Default: "localhost"): Destination host
* "port" (Default: 2003): Destination port
* "namespace" (Default: "artdaq."): Directory name to prepend to all metrics. Should include the trailing '.'
* 

Definition at line 56 of file graphite_metric.cc.

Member Function Documentation

std::string artdaq::GraphiteMetric::getLibName ( ) const
inlineoverridevirtual

Get the library name for the Graphite metric.

Returns
The library name for the Graphite metric, "graphite"

Reimplemented from artdaq::MetricPlugin.

Definition at line 78 of file graphite_metric.cc.

void artdaq::GraphiteMetric::sendMetric_ ( const std::string &  name,
const std::string &  value,
const std::string &   
)
inlineoverridevirtual

Send a metric to Graphite.

Parameters
nameName of the metric. Will have the namespace prepended
valueValue of the metric

Implements artdaq::MetricPlugin.

Definition at line 85 of file graphite_metric.cc.

void artdaq::GraphiteMetric::sendMetric_ ( const std::string &  name,
const int &  value,
const std::string &  unit 
)
inlineoverridevirtual

Send a metric to Graphite.

Parameters
nameName of the metric. Will have the namespace prepended
valueValue of the metric
unitUnits of the metric (Not used)

Implements artdaq::MetricPlugin.

Definition at line 114 of file graphite_metric.cc.

void artdaq::GraphiteMetric::sendMetric_ ( const std::string &  name,
const double &  value,
const std::string &  unit 
)
inlineoverridevirtual

Send a metric to Graphite.

Parameters
nameName of the metric. Will have the namespace prepended
valueValue of the metric
unitUnits of the metric (Not used)

Implements artdaq::MetricPlugin.

Definition at line 125 of file graphite_metric.cc.

void artdaq::GraphiteMetric::sendMetric_ ( const std::string &  name,
const float &  value,
const std::string &  unit 
)
inlineoverridevirtual

Send a metric to Graphite.

Parameters
nameName of the metric. Will have the namespace prepended
valueValue of the metric
unitUnits of the metric (Not used)

Implements artdaq::MetricPlugin.

Definition at line 136 of file graphite_metric.cc.

void artdaq::GraphiteMetric::sendMetric_ ( const std::string &  name,
const unsigned long int &  value,
const std::string &  unit 
)
inlineoverride

Send a metric to Graphite.

Parameters
nameName of the metric. Will have the namespace prepended
valueValue of the metric
unitUnits of the metric (Not used)

Definition at line 147 of file graphite_metric.cc.


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