6#ifndef KCENON_NETWORK_INTERNAL_INTEGRATION_MONITORING_INTEGRATION_H_
7#define KCENON_NETWORK_INTERNAL_INTEGRATION_MONITORING_INTEGRATION_H_
52 class monitoring_interface
64 const std::map<std::string, std::string>& labels = {}) = 0;
73 const std::map<std::string, std::string>& labels = {}) = 0;
82 const std::map<std::string, std::string>& labels = {}) = 0;
92 virtual void report_health(
const std::string& connection_id,
bool is_alive,
93 double response_time_ms,
size_t missed_heartbeats,
94 double packet_loss_rate) = 0;
117 const std::map<std::string, std::string>& labels = {})
override;
119 void report_gauge(
const std::string& name,
double value,
120 const std::map<std::string, std::string>& labels = {})
override;
123 const std::map<std::string, std::string>& labels = {})
override;
125 void report_health(
const std::string& connection_id,
bool is_alive,
126 double response_time_ms,
size_t missed_heartbeats,
127 double packet_loss_rate)
override;
177 void set_monitoring(std::shared_ptr<monitoring_interface> monitoring);
192 const std::map<std::string, std::string>& labels = {});
200 void report_gauge(
const std::string& name,
double value,
201 const std::map<std::string, std::string>& labels = {});
210 const std::map<std::string, std::string>& labels = {});
220 void report_health(
const std::string& connection_id,
bool is_alive,
221 double response_time_ms,
size_t missed_heartbeats,
222 double packet_loss_rate);
Basic monitoring implementation for standalone use.
void report_health(const std::string &connection_id, bool is_alive, double response_time_ms, size_t missed_heartbeats, double packet_loss_rate) override
Report connection health metrics.
~basic_monitoring() override
basic_monitoring(bool enable_logging=true)
Constructor.
void report_histogram(const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
Report a histogram metric.
std::unique_ptr< impl > pimpl_
void report_counter(const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
Report a counter metric.
void set_logging_enabled(bool enabled)
Enable or disable logging.
void report_gauge(const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
Report a gauge metric.
bool is_logging_enabled() const
Check if logging is enabled.
Manager for monitoring system integration.
std::shared_ptr< monitoring_interface > get_monitoring()
Get the current monitoring implementation.
void report_health(const std::string &connection_id, bool is_alive, double response_time_ms, size_t missed_heartbeats, double packet_loss_rate)
Report connection health metrics.
~monitoring_integration_manager()
monitoring_integration_manager()
static monitoring_integration_manager & instance()
Get the singleton instance.
void report_histogram(const std::string &name, double value, const std::map< std::string, std::string > &labels={})
Report a histogram metric.
void set_monitoring(std::shared_ptr< monitoring_interface > monitoring)
Set the monitoring implementation.
void report_counter(const std::string &name, double value, const std::map< std::string, std::string > &labels={})
Report a counter metric.
void report_gauge(const std::string &name, double value, const std::map< std::string, std::string > &labels={})
Report a gauge metric.
std::unique_ptr< impl > pimpl_
Interface for monitoring integration.
virtual void report_counter(const std::string &name, double value, const std::map< std::string, std::string > &labels={})=0
Report a counter metric.
virtual void report_health(const std::string &connection_id, bool is_alive, double response_time_ms, size_t missed_heartbeats, double packet_loss_rate)=0
Report connection health metrics.
virtual void report_histogram(const std::string &name, double value, const std::map< std::string, std::string > &labels={})=0
Report a histogram metric.
virtual void report_gauge(const std::string &name, double value, const std::map< std::string, std::string > &labels={})=0
Report a gauge metric.
virtual ~monitoring_interface()=default
std::atomic< bool > enabled
metric_type
Types of metrics supported.
Thread system integration interface for network_system.