artdaq::MetricManager Class Reference

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>

List of all members.

Public Member Functions

 MetricManager ()
 Construct an instance of the MetricManager class.
 MetricManager (MetricManager const &)
 Copy Constructor is deleted.
virtual ~MetricManager () noexcept
 MetricManager destructor.
MetricManageroperator= (MetricManager const &)
 Copy Assignment operator is deleted.
void initialize (fhicl::ParameterSet const &pset, std::string prefix="")
 Initialize the MetricPlugin instances.
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 prefix="")
 Reinitialize all MetricPlugin Instances.
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.
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.
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.
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.
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.
void setPrefix (std::string prefix)
 Sets the prefix prepended to all metrics without useNameOverride set.
bool Initialized ()
 Returns whether the MetricManager has been initialized (configured).
bool Running ()
 Returns whether the MetricManager is running (accepting metric calls).
bool Active ()
 Returns whether any Metric Plugins are defined and configured.
bool metricQueueEmpty ()
 Returns whether the metric queue is completely empty.
size_t metricQueueSize (std::string name="")
 Return the size of the named metric queue.

Detailed Description

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 33 of file MetricManager.hh.


Constructor & Destructor Documentation

artdaq::MetricManager::~MetricManager (  )  [virtual]

MetricManager destructor.

Calls shutdown()

Definition at line 28 of file MetricManager.cc.


Member Function Documentation

bool artdaq::MetricManager::Active (  )  [inline]

Returns whether any Metric Plugins are defined and configured.

Returns:
True if a Metric Plugin can accept metrics

Definition at line 202 of file MetricManager.hh.

void artdaq::MetricManager::initialize ( fhicl::ParameterSet const &  pset,
std::string  prefix = "" 
)

Initialize the MetricPlugin instances.

Parameters:
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: 10000): The maximum number of metric entries which can be stored in the metric queue. If the queue is above this size, new metric entries will be dropped until the plugins catch up.

Definition at line 33 of file MetricManager.cc.

bool artdaq::MetricManager::Initialized (  )  [inline]

Returns whether the MetricManager has been initialized (configured).

Returns:
True if MetricManager is initialized

Definition at line 190 of file MetricManager.hh.

bool artdaq::MetricManager::metricQueueEmpty (  ) 

Returns whether the metric queue is completely empty.

Returns:
True if the metric queue is empty

Definition at line 322 of file MetricManager.cc.

size_t artdaq::MetricManager::metricQueueSize ( std::string  name = ""  ) 

Return the size of the named metric queue.

Parameters:
name Name of the metric queue to query. "" returns size of all queues (default)
Returns:
Size of selected metric queue

Definition at line 331 of file MetricManager.cc.

MetricManager& artdaq::MetricManager::operator= ( MetricManager const &   ) 

Copy Assignment operator is deleted.

Returns:
MetricManager copy
void artdaq::MetricManager::reinitialize ( fhicl::ParameterSet const &  pset,
std::string  prefix = "" 
)

Reinitialize all MetricPlugin Instances.

Parameters:
pset ParameterSet used to configure the MetricPlugin instances
prefix Prefix to apply to Metric names

Calls shutdown(), then initialize(pset, prefix).

Definition at line 126 of file MetricManager.cc.

bool artdaq::MetricManager::Running (  )  [inline]

Returns whether the MetricManager is running (accepting metric calls).

Returns:
True if MetricManager is running

Definition at line 196 of file MetricManager.hh.

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.

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

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

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

Parameters:
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 189 of file MetricManager.cc.

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.

Parameters:
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 158 of file MetricManager.cc.

void artdaq::MetricManager::setPrefix ( std::string  prefix  )  [inline]

Sets the prefix prepended to all metrics without useNameOverride set.

Parameters:
prefix The prefix to prepend. Delimiter character in names is "."

Definition at line 184 of file MetricManager.hh.


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

Generated on 26 Jan 2018 for artdaq_utilities by  doxygen 1.6.1