|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
Helper class for reporting network metrics. More...
#include <network_metrics.h>

Static Public Member Functions | |
| static void | report_connection_accepted () |
| Report a new connection accepted. | |
| static void | report_connection_failed (const std::string &reason) |
| Report a failed connection attempt. | |
| static void | report_bytes_sent (size_t bytes) |
| Report bytes sent. | |
| static void | report_bytes_received (size_t bytes) |
| Report bytes received. | |
| static void | report_latency (double ms) |
| Report network latency. | |
| static void | report_error (const std::string &error_type) |
| Report a network error. | |
| static void | report_timeout () |
| Report a timeout. | |
| static void | report_active_connections (size_t count) |
| Report active connections count. | |
| static void | report_session_duration (double ms) |
| Report session duration. | |
| static void | record_latency (double ms) |
| Record latency to internal histogram. | |
| static void | record_connection_time (double ms) |
| Record connection time to internal histogram. | |
| static void | record_request_duration (double ms) |
| Record request duration to internal histogram. | |
| static auto | get_latency_p50 () -> double |
| Get latency 50th percentile (median) | |
| static auto | get_latency_p95 () -> double |
| Get latency 95th percentile. | |
| static auto | get_latency_p99 () -> double |
| Get latency 99th percentile. | |
| static auto | get_connection_time_p99 () -> double |
| Get connection time 99th percentile. | |
| static auto | get_request_duration_p99 () -> double |
| Get request duration 99th percentile. | |
| static auto | get_all_histograms () -> std::map< std::string, histogram_snapshot > |
| Get all histogram snapshots for export. | |
| static void | reset_histograms () |
| Reset all histogram data. | |
Helper class for reporting network metrics.
This class provides convenient methods to report network-related metrics to the monitoring system (if available).
Definition at line 67 of file network_metrics.h.
|
staticnodiscard |
Get all histogram snapshots for export.
Definition at line 255 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::CONNECTION_TIME_HISTOGRAM, kcenon::network::metrics::metric_names::LATENCY_HISTOGRAM, and kcenon::network::metrics::metric_names::REQUEST_DURATION_HISTOGRAM.
|
staticnodiscard |
Get connection time 99th percentile.
Definition at line 243 of file network_metrics.cpp.
|
staticnodiscard |
Get latency 50th percentile (median)
Definition at line 225 of file network_metrics.cpp.
|
staticnodiscard |
Get latency 95th percentile.
Definition at line 231 of file network_metrics.cpp.
|
staticnodiscard |
Get latency 99th percentile.
Definition at line 237 of file network_metrics.cpp.
|
staticnodiscard |
Get request duration 99th percentile.
Definition at line 249 of file network_metrics.cpp.
|
static |
Record connection time to internal histogram.
| ms | Connection time in milliseconds |
Definition at line 197 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::CONNECTION_TIME_HISTOGRAM, kcenon::network::events::histogram, kcenon::network::integration::monitoring_integration_manager::instance(), and kcenon::network::integration::monitoring_integration_manager::report_histogram().

|
static |
Record latency to internal histogram.
| ms | Latency in milliseconds |
Records latency to a sliding histogram for percentile calculations. Also reports to the traditional monitoring integration.
Definition at line 187 of file network_metrics.cpp.
References report_latency().

|
static |
Record request duration to internal histogram.
| ms | Request duration in milliseconds |
Definition at line 211 of file network_metrics.cpp.
References kcenon::network::events::histogram, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::integration::monitoring_integration_manager::report_histogram(), and kcenon::network::metrics::metric_names::REQUEST_DURATION_HISTOGRAM.

|
static |
Report active connections count.
| count | Number of active connections |
Definition at line 159 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::CONNECTIONS_ACTIVE, kcenon::network::events::gauge, kcenon::network::integration::monitoring_integration_manager::instance(), and kcenon::network::integration::monitoring_integration_manager::report_gauge().
Referenced by kcenon::network::core::messaging_quic_server::find_or_create_session(), kcenon::network::core::messaging_server::on_accept(), and kcenon::network::core::messaging_quic_server::on_session_close().


|
static |
Report bytes received.
| bytes | Number of bytes received |
Definition at line 108 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::BYTES_RECEIVED, kcenon::network::events::counter, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::metrics::metric_names::PACKETS_RECEIVED, and kcenon::network::integration::monitoring_integration_manager::report_counter().
Referenced by kcenon::network::session::messaging_session::on_receive(), and kcenon::network::session::quic_session::on_stream_data().


|
static |
Report bytes sent.
| bytes | Number of bytes sent |
Definition at line 91 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::BYTES_SENT, kcenon::network::events::counter, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::metrics::metric_names::PACKETS_SENT, and kcenon::network::integration::monitoring_integration_manager::report_counter().
Referenced by main(), kcenon::network::session::quic_session::send(), kcenon::network::session::quic_session::send_on_stream(), and kcenon::network::session::messaging_session::send_packet().


|
static |
Report a new connection accepted.
Definition at line 65 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::CONNECTIONS_TOTAL, kcenon::network::events::counter, kcenon::network::integration::monitoring_integration_manager::instance(), and kcenon::network::integration::monitoring_integration_manager::report_counter().
Referenced by kcenon::network::core::messaging_quic_server::find_or_create_session(), main(), and kcenon::network::core::messaging_server::on_accept().


|
static |
Report a failed connection attempt.
| reason | Reason for the failure |
Definition at line 79 of file network_metrics.cpp.
References kcenon::network::metrics::metric_names::CONNECTIONS_FAILED, kcenon::network::events::counter, kcenon::network::integration::monitoring_integration_manager::instance(), and kcenon::network::integration::monitoring_integration_manager::report_counter().
Referenced by main(), and kcenon::network::core::messaging_server::on_accept().


|
static |
Report a network error.
| error_type | Type of error |
Definition at line 136 of file network_metrics.cpp.
References kcenon::network::events::counter, kcenon::network::metrics::metric_names::ERRORS_TOTAL, kcenon::network::integration::monitoring_integration_manager::instance(), and kcenon::network::integration::monitoring_integration_manager::report_counter().

|
static |
Report network latency.
| ms | Latency in milliseconds |
Definition at line 125 of file network_metrics.cpp.
References kcenon::network::events::histogram, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::metrics::metric_names::LATENCY_MS, and kcenon::network::integration::monitoring_integration_manager::report_histogram().
Referenced by main(), and record_latency().


|
static |
Report session duration.
| ms | Duration in milliseconds |
Definition at line 172 of file network_metrics.cpp.
References kcenon::network::events::histogram, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::integration::monitoring_integration_manager::report_histogram(), and kcenon::network::metrics::metric_names::SESSION_DURATION_MS.

|
static |
Report a timeout.
Definition at line 148 of file network_metrics.cpp.
References kcenon::network::events::counter, kcenon::network::integration::monitoring_integration_manager::instance(), kcenon::network::integration::monitoring_integration_manager::report_counter(), and kcenon::network::metrics::metric_names::TIMEOUTS_TOTAL.

|
static |
Reset all histogram data.
Clears all histogram observations. Useful for testing or when starting a new measurement period.
Definition at line 270 of file network_metrics.cpp.