Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::monitoring::connection_metrics Struct Reference

Metrics for database connection usage. More...

#include <performance_monitor.h>

Collaboration diagram for database::monitoring::connection_metrics:
Collaboration graph

Public Member Functions

 connection_metrics ()=default
 
 connection_metrics (const connection_metrics &other)
 
 connection_metrics (connection_metrics &&other) noexcept
 
connection_metricsoperator= (const connection_metrics &other)
 
connection_metricsoperator= (connection_metrics &&other) noexcept
 

Public Attributes

std::atomic< size_t > total_connections {0}
 
std::atomic< size_t > active_connections {0}
 
std::atomic< size_t > idle_connections {0}
 
std::atomic< size_t > failed_connections {0}
 
std::atomic< std::chrono::microseconds > avg_acquisition_time {std::chrono::microseconds{0}}
 
std::atomic< std::chrono::microseconds > max_acquisition_time {std::chrono::microseconds{0}}
 
std::chrono::steady_clock::time_point last_update
 

Detailed Description

Metrics for database connection usage.

Examples
performance_monitoring_demo.cpp.

Definition at line 44 of file performance_monitor.h.

Constructor & Destructor Documentation

◆ connection_metrics() [1/3]

database::monitoring::connection_metrics::connection_metrics ( )
default

◆ connection_metrics() [2/3]

database::monitoring::connection_metrics::connection_metrics ( const connection_metrics & other)
inline

Definition at line 58 of file performance_monitor.h.

58 :
59 total_connections(other.total_connections.load()),
60 active_connections(other.active_connections.load()),
61 idle_connections(other.idle_connections.load()),
62 failed_connections(other.failed_connections.load()),
63 avg_acquisition_time(other.avg_acquisition_time.load()),
64 max_acquisition_time(other.max_acquisition_time.load()),
65 last_update(other.last_update) {}
std::atomic< std::chrono::microseconds > max_acquisition_time
std::atomic< std::chrono::microseconds > avg_acquisition_time
std::chrono::steady_clock::time_point last_update

◆ connection_metrics() [3/3]

database::monitoring::connection_metrics::connection_metrics ( connection_metrics && other)
inlinenoexcept

Definition at line 68 of file performance_monitor.h.

68 :
69 total_connections(other.total_connections.load()),
70 active_connections(other.active_connections.load()),
71 idle_connections(other.idle_connections.load()),
72 failed_connections(other.failed_connections.load()),
73 avg_acquisition_time(other.avg_acquisition_time.load()),
74 max_acquisition_time(other.max_acquisition_time.load()),
75 last_update(std::move(other.last_update)) {}

Member Function Documentation

◆ operator=() [1/2]

connection_metrics & database::monitoring::connection_metrics::operator= ( connection_metrics && other)
inlinenoexcept

Definition at line 92 of file performance_monitor.h.

92 {
93 if (this != &other) {
94 total_connections.store(other.total_connections.load());
95 active_connections.store(other.active_connections.load());
96 idle_connections.store(other.idle_connections.load());
97 failed_connections.store(other.failed_connections.load());
98 avg_acquisition_time.store(other.avg_acquisition_time.load());
99 max_acquisition_time.store(other.max_acquisition_time.load());
100 last_update = std::move(other.last_update);
101 }
102 return *this;
103 }

References active_connections, avg_acquisition_time, failed_connections, idle_connections, last_update, max_acquisition_time, and total_connections.

◆ operator=() [2/2]

connection_metrics & database::monitoring::connection_metrics::operator= ( const connection_metrics & other)
inline

Definition at line 78 of file performance_monitor.h.

78 {
79 if (this != &other) {
80 total_connections.store(other.total_connections.load());
81 active_connections.store(other.active_connections.load());
82 idle_connections.store(other.idle_connections.load());
83 failed_connections.store(other.failed_connections.load());
84 avg_acquisition_time.store(other.avg_acquisition_time.load());
85 max_acquisition_time.store(other.max_acquisition_time.load());
86 last_update = other.last_update;
87 }
88 return *this;
89 }

References active_connections, avg_acquisition_time, failed_connections, idle_connections, last_update, max_acquisition_time, and total_connections.

Member Data Documentation

◆ active_connections

◆ avg_acquisition_time

std::atomic<std::chrono::microseconds> database::monitoring::connection_metrics::avg_acquisition_time {std::chrono::microseconds{0}}

◆ failed_connections

std::atomic<size_t> database::monitoring::connection_metrics::failed_connections {0}

◆ idle_connections

◆ last_update

std::chrono::steady_clock::time_point database::monitoring::connection_metrics::last_update

◆ max_acquisition_time

std::atomic<std::chrono::microseconds> database::monitoring::connection_metrics::max_acquisition_time {std::chrono::microseconds{0}}

◆ total_connections


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