artdaq  v3_09_01
simple_metric_sender.cc
1 #include <iostream>
2 #include "artdaq-utilities/Plugins/MetricManager.hh"
3 #include "artdaq/Application/LoadParameterSet.hh"
4 #include "fhiclcpp/types/TableFragment.h"
5 
9 struct Config
10 {
11  fhicl::TableFragment<artdaq::MetricManager::Config> metricmanager_config;
12 };
13 
14 int main(int argc, char* argv[])
15 try
16 {
17  auto config_ps = LoadParameterSet<Config>(argc, argv, "simple_metric_sender", "A simple application that can be used to send artdaq Metrics from the command line.");
18  artdaq::MetricManager mm;
19  mm.initialize(config_ps, config_ps.get<std::string>("application_name", "SimpleMetric"));
20  mm.do_start();
21 
22  int level = config_ps.get<int>("metric_level", 1);
23 
24  std::cout << "Enter metrics in <name> <value> <units> format. Ctrl-D to end" << std::endl;
25  std::string name, unit;
26  double value;
27  while (std::cin >> name >> value >> unit)
28  {
29  mm.sendMetric(name, value, unit, level, artdaq::MetricMode::LastPoint);
30  }
31 
32  mm.do_stop();
33 
34  return 0;
35 }
36 catch (...)
37 {
38  return -1;
39 }
fhicl::TableFragment< artdaq::MetricManager::Config > metricmanager_config
Configuration for MetricManager.
Configuration for simple_metric_sender.