Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::integration::monitoring_integration_manager Class Reference

Manager for monitoring system integration. More...

#include <monitoring_integration.h>

Collaboration diagram for kcenon::network::integration::monitoring_integration_manager:
Collaboration graph

Classes

class  impl
 

Public Member Functions

void set_monitoring (std::shared_ptr< monitoring_interface > monitoring)
 Set the monitoring implementation.
 
std::shared_ptr< monitoring_interfaceget_monitoring ()
 Get the current 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.
 
void report_histogram (const std::string &name, double value, const std::map< std::string, std::string > &labels={})
 Report a histogram metric.
 
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.
 

Static Public Member Functions

static monitoring_integration_managerinstance ()
 Get the singleton instance.
 

Private Member Functions

 monitoring_integration_manager ()
 
 ~monitoring_integration_manager ()
 

Private Attributes

std::unique_ptr< implpimpl_
 

Detailed Description

Manager for monitoring system integration.

This class manages the integration between network_system and monitoring implementations.

Definition at line 164 of file monitoring_integration.h.

Constructor & Destructor Documentation

◆ monitoring_integration_manager()

kcenon::network::integration::monitoring_integration_manager::monitoring_integration_manager ( )
private

Definition at line 194 of file monitoring_integration.cpp.

195 : pimpl_(std::make_unique<impl>())
196 {
197 }

◆ ~monitoring_integration_manager()

kcenon::network::integration::monitoring_integration_manager::~monitoring_integration_manager ( )
privatedefault

Member Function Documentation

◆ get_monitoring()

std::shared_ptr< monitoring_interface > kcenon::network::integration::monitoring_integration_manager::get_monitoring ( )

Get the current monitoring implementation.

Returns
Current monitoring implementation (creates basic monitoring if none set)

Definition at line 213 of file monitoring_integration.cpp.

214 {
215 return pimpl_->get_monitoring();
216 }

References kcenon::network::integration::monitoring_integration_manager::impl::get_monitoring(), and pimpl_.

Referenced by kcenon::network::core::network_context::get_monitoring(), kcenon::network::core::network_context::initialize(), report_counter(), report_gauge(), report_health(), and report_histogram().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ instance()

monitoring_integration_manager & kcenon::network::integration::monitoring_integration_manager::instance ( )
static

Get the singleton instance.

Returns
Reference to the singleton instance

Definition at line 201 of file monitoring_integration.cpp.

References instance().

Referenced by kcenon::network::core::network_context::get_monitoring(), kcenon::network::core::network_context::initialize(), instance(), kcenon::network::metrics::metric_reporter::record_connection_time(), kcenon::network::metrics::metric_reporter::record_request_duration(), kcenon::network::metrics::metric_reporter::report_active_connections(), kcenon::network::metrics::metric_reporter::report_bytes_received(), kcenon::network::metrics::metric_reporter::report_bytes_sent(), kcenon::network::metrics::metric_reporter::report_connection_accepted(), kcenon::network::metrics::metric_reporter::report_connection_failed(), kcenon::network::metrics::metric_reporter::report_error(), kcenon::network::metrics::metric_reporter::report_latency(), kcenon::network::metrics::metric_reporter::report_session_duration(), kcenon::network::metrics::metric_reporter::report_timeout(), kcenon::network::core::network_context::set_monitoring(), and kcenon::network::utils::health_monitor::update_health().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ report_counter()

void kcenon::network::integration::monitoring_integration_manager::report_counter ( const std::string & name,
double value,
const std::map< std::string, std::string > & labels = {} )

Report a counter metric.

Parameters
nameMetric name
valueCounter value
labelsOptional labels

Definition at line 218 of file monitoring_integration.cpp.

220 {
221 get_monitoring()->report_counter(name, value, labels);
222 }
std::shared_ptr< monitoring_interface > get_monitoring()
Get the current monitoring implementation.

References get_monitoring().

Referenced by kcenon::network::metrics::metric_reporter::report_bytes_received(), kcenon::network::metrics::metric_reporter::report_bytes_sent(), kcenon::network::metrics::metric_reporter::report_connection_accepted(), kcenon::network::metrics::metric_reporter::report_connection_failed(), kcenon::network::metrics::metric_reporter::report_error(), and kcenon::network::metrics::metric_reporter::report_timeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ report_gauge()

void kcenon::network::integration::monitoring_integration_manager::report_gauge ( const std::string & name,
double value,
const std::map< std::string, std::string > & labels = {} )

Report a gauge metric.

Parameters
nameMetric name
valueGauge value
labelsOptional labels

Definition at line 224 of file monitoring_integration.cpp.

226 {
227 get_monitoring()->report_gauge(name, value, labels);
228 }

References get_monitoring().

Referenced by kcenon::network::metrics::metric_reporter::report_active_connections().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ report_health()

void kcenon::network::integration::monitoring_integration_manager::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.

Parameters
connection_idConnection identifier
is_aliveConnection alive status
response_time_msResponse time in milliseconds
missed_heartbeatsNumber of missed heartbeats
packet_loss_ratePacket loss rate (0.0-1.0)

Definition at line 236 of file monitoring_integration.cpp.

240 {
241 get_monitoring()->report_health(connection_id, is_alive, response_time_ms,
242 missed_heartbeats, packet_loss_rate);
243 }

References get_monitoring().

Here is the call graph for this function:

◆ report_histogram()

void kcenon::network::integration::monitoring_integration_manager::report_histogram ( const std::string & name,
double value,
const std::map< std::string, std::string > & labels = {} )

Report a histogram metric.

Parameters
nameMetric name
valueHistogram value
labelsOptional labels

Definition at line 230 of file monitoring_integration.cpp.

232 {
233 get_monitoring()->report_histogram(name, value, labels);
234 }

References get_monitoring().

Referenced by kcenon::network::metrics::metric_reporter::record_connection_time(), kcenon::network::metrics::metric_reporter::record_request_duration(), kcenon::network::metrics::metric_reporter::report_latency(), and kcenon::network::metrics::metric_reporter::report_session_duration().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_monitoring()

void kcenon::network::integration::monitoring_integration_manager::set_monitoring ( std::shared_ptr< monitoring_interface > monitoring)

Set the monitoring implementation.

Parameters
monitoringMonitoring implementation to use

Definition at line 207 of file monitoring_integration.cpp.

209 {
210 pimpl_->set_monitoring(monitoring);
211 }
void set_monitoring(std::shared_ptr< monitoring_interface > monitoring)

References pimpl_, and kcenon::network::integration::monitoring_integration_manager::impl::set_monitoring().

Referenced by kcenon::network::core::network_context::set_monitoring().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ pimpl_

std::unique_ptr<impl> kcenon::network::integration::monitoring_integration_manager::pimpl_
private

Definition at line 229 of file monitoring_integration.h.

Referenced by get_monitoring(), and set_monitoring().


The documentation for this class was generated from the following files: