| #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_ |