Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::events::network_metric_event Struct Reference

Event for publishing network metrics via EventBus. More...

#include <network_metric_event.h>

Collaboration diagram for kcenon::network::events::network_metric_event:
Collaboration graph

Public Member Functions

 network_metric_event (const std::string &metric_name, double metric_value, network_metric_type metric_type=network_metric_type::counter, const std::map< std::string, std::string > &metric_labels={}, const std::string &metric_unit="")
 Construct a network metric event.
 
 network_metric_event ()
 Default constructor.
 
 network_metric_event (const network_metric_event &)=default
 Copy constructor (required for EventType concept)
 
network_metric_eventoperator= (const network_metric_event &)=default
 Copy assignment operator.
 
 network_metric_event (network_metric_event &&) noexcept=default
 Move constructor.
 
network_metric_eventoperator= (network_metric_event &&) noexcept=default
 Move assignment operator.
 

Public Attributes

std::string name
 
double value
 
std::string unit
 
network_metric_type type
 
std::chrono::steady_clock::time_point timestamp
 
std::map< std::string, std::string > labels
 

Detailed Description

Event for publishing network metrics via EventBus.

This event satisfies common_system's EventType concept and can be published to the EventBus for consumption by external systems like monitoring_system.

Example usage:

auto& bus = kcenon::common::get_event_bus();
"network.connections.total", 1.0, network_metric_type::counter,
{{"protocol", "tcp"}, {"status", "accepted"}}
});
Event for publishing network metrics via EventBus.

Definition at line 54 of file network_metric_event.h.

Constructor & Destructor Documentation

◆ network_metric_event() [1/4]

kcenon::network::events::network_metric_event::network_metric_event ( const std::string & metric_name,
double metric_value,
network_metric_type metric_type = network_metric_type::counter,
const std::map< std::string, std::string > & metric_labels = {},
const std::string & metric_unit = "" )
inlineexplicit

Construct a network metric event.

Parameters
metric_nameMetric name
metric_valueMetric value
metric_typeType of metric (default: counter)
metric_labelsAdditional labels/tags (default: empty)
metric_unitUnit of measurement (default: empty)

Definition at line 71 of file network_metric_event.h.

75 {},
76 const std::string& metric_unit = "")
77 : name(metric_name)
78 , value(metric_value)
79 , unit(metric_unit)
81 , timestamp(std::chrono::steady_clock::now())
82 , labels(metric_labels)
83 {
84 }
metric_type
Types of metrics supported.
std::chrono::steady_clock::time_point timestamp
std::map< std::string, std::string > labels

◆ network_metric_event() [2/4]

kcenon::network::events::network_metric_event::network_metric_event ( )
inline

Default constructor.

Definition at line 89 of file network_metric_event.h.

90 : value(0.0)
92 , timestamp(std::chrono::steady_clock::now())
93 {
94 }

◆ network_metric_event() [3/4]

kcenon::network::events::network_metric_event::network_metric_event ( const network_metric_event & )
default

Copy constructor (required for EventType concept)

◆ network_metric_event() [4/4]

kcenon::network::events::network_metric_event::network_metric_event ( network_metric_event && )
defaultnoexcept

Move constructor.

Member Function Documentation

◆ operator=() [1/2]

network_metric_event & kcenon::network::events::network_metric_event::operator= ( const network_metric_event & )
default

Copy assignment operator.

◆ operator=() [2/2]

network_metric_event & kcenon::network::events::network_metric_event::operator= ( network_metric_event && )
defaultnoexcept

Move assignment operator.

Member Data Documentation

◆ labels

std::map<std::string, std::string> kcenon::network::events::network_metric_event::labels

Additional labels/tags

Definition at line 61 of file network_metric_event.h.

◆ name

std::string kcenon::network::events::network_metric_event::name

Metric name

Definition at line 56 of file network_metric_event.h.

◆ timestamp

std::chrono::steady_clock::time_point kcenon::network::events::network_metric_event::timestamp

Event timestamp

Definition at line 60 of file network_metric_event.h.

◆ type

network_metric_type kcenon::network::events::network_metric_event::type

Metric type

Definition at line 59 of file network_metric_event.h.

◆ unit

std::string kcenon::network::events::network_metric_event::unit

Unit of measurement

Definition at line 58 of file network_metric_event.h.

◆ value

double kcenon::network::events::network_metric_event::value

Metric value

Definition at line 57 of file network_metric_event.h.


The documentation for this struct was generated from the following file: