xref: /openbmc/telemetry/src/interfaces/metric.hpp (revision 8069771c)
1 #pragma once
2 
3 #include "metric_value.hpp"
4 #include "types/report_types.hpp"
5 
6 #include <nlohmann/json.hpp>
7 
8 #include <vector>
9 
10 namespace interfaces
11 {
12 
13 class Metric
14 {
15   public:
16     virtual ~Metric() = default;
17 
18     virtual void initialize() = 0;
19     virtual std::vector<MetricValue> getReadings() const = 0;
20     virtual LabeledMetricParameters dumpConfiguration() const = 0;
21 };
22 
23 } // namespace interfaces
24