Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
DatabaseConnection Class Reference
Collaboration diagram for DatabaseConnection:
Collaboration graph

Public Member Functions

void set_healthy (bool healthy)
 
kcenon::common::Result< std::string > execute_query (const std::string &query)
 
int get_query_count () const
 

Private Attributes

std::atomic< bool > is_healthy_ {true}
 
std::atomic< int > query_count_ {0}
 
std::mt19937 rng_ {std::random_device{}()}
 

Detailed Description

Member Function Documentation

◆ execute_query()

kcenon::common::Result< std::string > DatabaseConnection::execute_query ( const std::string & query)
inline
Examples
health_reliability_example.cpp.

Definition at line 45 of file health_reliability_example.cpp.

45 {
47
48 // Simulate latency
49 std::this_thread::sleep_for(10ms);
50
51 // Simulate failures
52 if (!is_healthy_) {
53 return kcenon::common::Result<std::string>::err(error_info(monitoring_error_code::service_unavailable, "Database connection lost").to_common_error());
54 }
55
56 // Random transient failures (10% chance)
57 std::uniform_int_distribution<> dist(1, 10);
58 if (dist(rng_) == 1) {
59 return kcenon::common::Result<std::string>::err(error_info(monitoring_error_code::operation_timeout, "Query timeout").to_common_error());
60 }
61
62 return kcenon::common::ok("Query result for: " + query);
63 }
Extended error information with context.

References is_healthy_, query_count_, and rng_.

◆ get_query_count()

int DatabaseConnection::get_query_count ( ) const
inline
Examples
health_reliability_example.cpp.

Definition at line 65 of file health_reliability_example.cpp.

65{ return query_count_; }

References query_count_.

◆ set_healthy()

void DatabaseConnection::set_healthy ( bool healthy)
inline

Member Data Documentation

◆ is_healthy_

std::atomic<bool> DatabaseConnection::is_healthy_ {true}
private
Examples
health_reliability_example.cpp.

Definition at line 36 of file health_reliability_example.cpp.

36{true};

Referenced by execute_query(), and set_healthy().

◆ query_count_

std::atomic<int> DatabaseConnection::query_count_ {0}
private
Examples
health_reliability_example.cpp.

Definition at line 37 of file health_reliability_example.cpp.

37{0};

Referenced by execute_query(), and get_query_count().

◆ rng_

std::mt19937 DatabaseConnection::rng_ {std::random_device{}()}
private
Examples
health_reliability_example.cpp.

Definition at line 38 of file health_reliability_example.cpp.

38{std::random_device{}()};

Referenced by execute_query().


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