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

Basic monitoring implementation for standalone use. More...

#include <monitoring_integration.h>

Inheritance diagram for kcenon::network::integration::basic_monitoring:
Inheritance graph
Collaboration diagram for kcenon::network::integration::basic_monitoring:
Collaboration graph

Classes

class  impl
 

Public Member Functions

 basic_monitoring (bool enable_logging=true)
 Constructor.
 
 ~basic_monitoring () override
 
void report_counter (const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
 Report a counter metric.
 
void report_gauge (const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
 Report a gauge metric.
 
void report_histogram (const std::string &name, double value, const std::map< std::string, std::string > &labels={}) override
 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) override
 Report connection health metrics.
 
void set_logging_enabled (bool enabled)
 Enable or disable logging.
 
bool is_logging_enabled () const
 Check if logging is enabled.
 
- Public Member Functions inherited from kcenon::network::integration::monitoring_interface
virtual ~monitoring_interface ()=default
 
virtual ~monitoring_interface ()=default
 
virtual void record_counter (std::string_view name, int64_t value)=0
 Record a counter metric.
 
virtual void record_gauge (std::string_view name, double value)=0
 Record a gauge metric.
 
virtual void record_histogram (std::string_view name, double value)=0
 Record a histogram metric.
 

Private Attributes

std::unique_ptr< implpimpl_
 

Detailed Description

Basic monitoring implementation for standalone use.

This provides a simple monitoring implementation for when monitoring_system is not available. Logs metrics to console.

Definition at line 104 of file monitoring_integration.h.

Constructor & Destructor Documentation

◆ basic_monitoring()

kcenon::network::integration::basic_monitoring::basic_monitoring ( bool enable_logging = true)
explicit

Constructor.

Parameters
enable_loggingEnable console logging (default: true)

Definition at line 120 of file monitoring_integration.cpp.

121 : pimpl_(std::make_unique<impl>(enable_logging))
122 {
123 }

◆ ~basic_monitoring()

kcenon::network::integration::basic_monitoring::~basic_monitoring ( )
overridedefault

Member Function Documentation

◆ is_logging_enabled()

bool kcenon::network::integration::basic_monitoring::is_logging_enabled ( ) const

Check if logging is enabled.

Returns
true if logging is enabled

Definition at line 158 of file monitoring_integration.cpp.

References kcenon::network::integration::basic_monitoring::impl::is_logging_enabled(), and pimpl_.

Here is the call graph for this function:

◆ report_counter()

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

Report a counter metric.

Parameters
nameMetric name
valueCounter value
labelsOptional labels for the metric

Implements kcenon::network::integration::monitoring_interface.

Definition at line 127 of file monitoring_integration.cpp.

129 {
130 pimpl_->report_counter(name, value, labels);
131 }
void report_counter(const std::string &name, double value, const std::map< std::string, std::string > &labels)

References pimpl_, and kcenon::network::integration::basic_monitoring::impl::report_counter().

Here is the call graph for this function:

◆ report_gauge()

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

Report a gauge metric.

Parameters
nameMetric name
valueGauge value
labelsOptional labels for the metric

Implements kcenon::network::integration::monitoring_interface.

Definition at line 133 of file monitoring_integration.cpp.

135 {
136 pimpl_->report_gauge(name, value, labels);
137 }
void report_gauge(const std::string &name, double value, const std::map< std::string, std::string > &labels)

References pimpl_, and kcenon::network::integration::basic_monitoring::impl::report_gauge().

Here is the call graph for this function:

◆ report_health()

void kcenon::network::integration::basic_monitoring::report_health ( const std::string & connection_id,
bool is_alive,
double response_time_ms,
size_t missed_heartbeats,
double packet_loss_rate )
overridevirtual

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)

Implements kcenon::network::integration::monitoring_interface.

Definition at line 145 of file monitoring_integration.cpp.

148 {
149 pimpl_->report_health(connection_id, is_alive, response_time_ms, missed_heartbeats,
150 packet_loss_rate);
151 }
void report_health(const std::string &connection_id, bool is_alive, double response_time_ms, size_t missed_heartbeats, double packet_loss_rate)

References pimpl_, and kcenon::network::integration::basic_monitoring::impl::report_health().

Here is the call graph for this function:

◆ report_histogram()

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

Report a histogram metric.

Parameters
nameMetric name
valueHistogram value
labelsOptional labels for the metric

Implements kcenon::network::integration::monitoring_interface.

Definition at line 139 of file monitoring_integration.cpp.

141 {
142 pimpl_->report_histogram(name, value, labels);
143 }
void report_histogram(const std::string &name, double value, const std::map< std::string, std::string > &labels)

References pimpl_, and kcenon::network::integration::basic_monitoring::impl::report_histogram().

Here is the call graph for this function:

◆ set_logging_enabled()

void kcenon::network::integration::basic_monitoring::set_logging_enabled ( bool enabled)

Enable or disable logging.

Parameters
enabledNew logging state

Definition at line 153 of file monitoring_integration.cpp.

154 {
156 }
std::atomic< bool > enabled
Definition exporters.cpp:28

References enabled, pimpl_, and kcenon::network::integration::basic_monitoring::impl::set_logging_enabled().

Here is the call graph for this function:

Member Data Documentation

◆ pimpl_

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

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