artdaq  v3_07_02
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 
6 struct Config
7 {
8  fhicl::TableFragment<artdaq::MetricManager::Config> metricmanager_config;
9 };
10 
11 int main(int argc, char* argv[])
12 {
13  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.");
14  artdaq::MetricManager mm;
15  mm.initialize(config_ps, config_ps.get<std::string>("application_name", "SimpleMetric"));
16  mm.do_start();
17 
18  int level = config_ps.get<int>("metric_level", 1);
19 
20  std::cout << "Enter metrics in <name> <value> <units> format. Ctrl-D to end" << std::endl;
21  std::string name, unit;
22  double value;
23  while (std::cin >> name >> value >> unit)
24  {
25  mm.sendMetric(name, value, unit, level, artdaq::MetricMode::LastPoint);
26  }
27 
28  mm.do_stop();
29 }