13#ifdef ENABLE_MONITORING_INTEGRATION
14#include <kcenon/monitoring/interfaces/monitoring_interface.h>
39#ifdef ENABLE_MONITORING_INTEGRATION
70class monitoring_backend :
public integration_backend {
81 explicit monitoring_backend(
82 std::shared_ptr<monitoring::interfaces::IMonitor> monitor =
nullptr)
83 : monitor_(std::move(monitor)) {}
88 ~monitoring_backend()
override =
default;
101 log_level normalize_level(
int external_level)
const override {
103 return static_cast<log_level>(external_level);
112 std::string get_backend_name()
const override {
113 return "monitoring_system";
124 bool requires_initialization()
const override {
125 return monitor_ !=
nullptr;
137 bool initialize()
override {
157 void shutdown()
override {
179 void emit_metric(
const std::string& metric_name,
double value) {
199 void publish_event(
const std::string& event_type,
const std::string& event_data) {
210 std::shared_ptr<monitoring::interfaces::IMonitor> monitor_;
Runtime polymorphism interface for integration backends kcenon.
Automatically toggles monitoring_system integration macros when headers are available.
common::interfaces::log_level log_level