1 #pragma once 2 3 #include "interfaces/types.hpp" 4 #include "metric_value.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 const MetricValue& getReading() const = 0; 20 virtual LabeledMetricParameters dumpConfiguration() const = 0; 21 }; 22 23 } // namespace interfaces 24