blob: c95128ffb1e9eed05ec018b6f7650aeda652967b [file] [log] [blame]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_COLLECTOR_COLLECTOR_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_COLLECTOR_COLLECTOR_H_
#include "nlohmann/json.hpp"
namespace milotic_tlbmc {
// Interface for collecting telemetry data.
// Each concrete collector shall be responsible for collecting telemetry data
// for a specific resource type.
// Example: FruCollector collects FRU data, SensorCollector collects sensor
// data etc.
// Collected data shall be written to the data store or stored locally
class Collector {
public:
virtual ~Collector() = default;
virtual nlohmann::json ToJson() const = 0;
// Returns the scheduler stats for the collector.
virtual nlohmann::json GetSchedulerStats() const = 0;
};
} // namespace milotic_tlbmc
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_COLLECTOR_COLLECTOR_H_