|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Monitoring backend using monitoring_system library. More...
#include <system_monitoring_backend.h>


Public Member Functions | |
| system_monitoring_backend (const db_monitoring_config &config) | |
| Construct system monitoring backend. | |
| ~system_monitoring_backend () override | |
| system_monitoring_backend (const system_monitoring_backend &)=delete | |
| system_monitoring_backend & | operator= (const system_monitoring_backend &)=delete |
| system_monitoring_backend (system_monitoring_backend &&)=delete | |
| system_monitoring_backend & | operator= (system_monitoring_backend &&)=delete |
| common::VoidResult | initialize () override |
| Initialize the monitoring backend. | |
| common::VoidResult | shutdown () override |
| Shutdown the monitoring backend gracefully. | |
| bool | is_initialized () const override |
| Check if backend is initialized. | |
| common::VoidResult | record_metric (const std::string &name, double value) override |
| Record a metric value. | |
| common::VoidResult | record_metric (const std::string &name, double value, const std::unordered_map< std::string, std::string > &tags) override |
| Record a metric value with tags. | |
| common::Result< metrics_snapshot > | get_metrics () override |
| Get current metrics snapshot. | |
| common::Result< health_check_result > | check_health () override |
| Perform health check. | |
| common::VoidResult | reset () override |
| Reset all metrics. | |
| void | record_query_execution (std::chrono::microseconds duration, bool success) override |
| Record query execution. | |
| void | record_connection_acquired () override |
| Record connection acquisition. | |
| void | record_connection_released () override |
| Record connection release. | |
| void | update_pool_stats (std::size_t active, std::size_t idle, std::size_t total) override |
| Update connection pool statistics. | |
| void | record_transaction_begin () override |
| Record transaction begin. | |
| void | record_transaction_commit () override |
| Record transaction commit. | |
| void | record_transaction_rollback () override |
| Record transaction rollback. | |
| common::Result< database_metrics > | get_database_metrics () override |
| Get database-specific metrics. | |
| std::string | export_prometheus_metrics () override |
| Export metrics in Prometheus format. | |
Public Member Functions inherited from database::integrated::adapters::backends::monitoring_backend | |
| virtual | ~monitoring_backend ()=default |
Private Member Functions | |
| database_metrics | convert_to_database_metrics (const kcenon::monitoring::metrics_snapshot &snapshot) |
| Convert monitoring_system metrics to database_metrics format. | |
| void | calculate_derived_metrics () |
| Calculate derived metrics from collected data. | |
Private Attributes | |
| const db_monitoring_config & | config_ |
| bool | initialized_ |
| std::mutex | mutex_ |
| std::chrono::steady_clock::time_point | start_time_ |
| std::unique_ptr< kcenon::monitoring::performance_monitor > | monitor_ |
| database_metrics | current_metrics_ |
| std::vector< std::chrono::microseconds > | recent_query_latencies_ |
| std::size_t | max_latency_samples_ |
| std::size_t | active_connections_ |
| std::size_t | idle_connections_ |
| std::size_t | total_connections_ |
| std::size_t | active_transactions_ |
Monitoring backend using monitoring_system library.
This backend uses the kcenon/monitoring_system for comprehensive metrics collection. Provides performance profiling, Prometheus export, and health monitoring. Requires monitoring_system to be available at compile time.
Definition at line 53 of file system_monitoring_backend.h.
|
explicit |
Construct system monitoring backend.
| config | Monitoring configuration |
Definition at line 37 of file system_monitoring_backend.cpp.
References max_latency_samples_, and recent_query_latencies_.
|
override |
Definition at line 50 of file system_monitoring_backend.cpp.
References initialized_, and shutdown().

|
delete |
|
delete |
|
private |
Calculate derived metrics from collected data.
Definition at line 524 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::avg_query_latency, current_metrics_, database::integrated::adapters::database_metrics::max_query_latency, database::integrated::adapters::database_metrics::min_query_latency, database::integrated::adapters::database_metrics::p95_query_latency, database::integrated::adapters::database_metrics::p99_query_latency, and recent_query_latencies_.
Referenced by record_query_execution().

|
overridevirtual |
Perform health check.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 210 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::avg_query_latency, config_, database::integrated::adapters::database_metrics::connection_usage_percent, database::integrated::db_monitoring_config::connection_usage_warning_threshold, current_metrics_, database::integrated::adapters::backends::degraded, database::integrated::adapters::backends::healthy, initialized_, database::integrated::adapters::backends::health_check_result::message, database::integrated::adapters::backends::health_check_result::metadata, mutex_, database::integrated::db_monitoring_config::query_latency_warning, database::integrated::adapters::database_metrics::query_success_rate, database::integrated::adapters::backends::health_check_result::status, database::integrated::adapters::database_metrics::total_queries, and database::integrated::adapters::backends::unhealthy.
|
private |
Convert monitoring_system metrics to database_metrics format.
Definition at line 560 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::total_queries.
|
overridevirtual |
Export metrics in Prometheus format.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 434 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_connections, database::integrated::adapters::database_metrics::active_transactions, database::integrated::adapters::database_metrics::avg_query_latency, database::integrated::adapters::database_metrics::committed_transactions, database::integrated::adapters::database_metrics::connection_usage_percent, current_metrics_, database::integrated::adapters::database_metrics::failed_queries, database::integrated::adapters::database_metrics::idle_connections, database::integrated::adapters::database_metrics::max_query_latency, database::integrated::adapters::database_metrics::min_query_latency, mutex_, database::integrated::adapters::database_metrics::p95_query_latency, database::integrated::adapters::database_metrics::p99_query_latency, database::integrated::adapters::database_metrics::queries_per_second, database::integrated::adapters::database_metrics::query_success_rate, database::integrated::adapters::database_metrics::rolled_back_transactions, database::integrated::adapters::database_metrics::successful_queries, database::integrated::adapters::database_metrics::total_connections, database::integrated::adapters::database_metrics::total_queries, database::integrated::adapters::database_metrics::transaction_commit_rate, and database::integrated::adapters::database_metrics::transactions_per_second.
|
overridevirtual |
Get database-specific metrics.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 406 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::committed_transactions, current_metrics_, initialized_, mutex_, database::integrated::adapters::database_metrics::queries_per_second, database::integrated::adapters::database_metrics::rolled_back_transactions, start_time_, database::integrated::adapters::database_metrics::timestamp, database::integrated::adapters::database_metrics::total_queries, and database::integrated::adapters::database_metrics::transactions_per_second.
|
overridevirtual |
Get current metrics snapshot.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 160 of file system_monitoring_backend.cpp.
References active_connections_, active_transactions_, database::integrated::adapters::database_metrics::avg_query_latency, database::integrated::adapters::database_metrics::committed_transactions, database::integrated::adapters::database_metrics::connection_usage_percent, database::integrated::adapters::backends::metrics_snapshot::counters, current_metrics_, database::integrated::adapters::database_metrics::failed_queries, database::integrated::adapters::backends::metrics_snapshot::gauges, idle_connections_, initialized_, database::integrated::adapters::database_metrics::max_query_latency, database::integrated::adapters::database_metrics::min_query_latency, mutex_, database::integrated::adapters::database_metrics::p95_query_latency, database::integrated::adapters::database_metrics::p99_query_latency, database::integrated::adapters::database_metrics::queries_per_second, database::integrated::adapters::database_metrics::query_success_rate, database::integrated::adapters::database_metrics::rolled_back_transactions, database::integrated::adapters::backends::metrics_snapshot::source_id, database::integrated::adapters::database_metrics::successful_queries, total_connections_, database::integrated::adapters::database_metrics::total_queries, database::integrated::adapters::database_metrics::transaction_commit_rate, and database::integrated::adapters::database_metrics::transactions_per_second.
|
overridevirtual |
Initialize the monitoring backend.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 58 of file system_monitoring_backend.cpp.
References initialized_, monitor_, common::ok(), and start_time_.

|
overridevirtual |
Check if backend is initialized.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 121 of file system_monitoring_backend.cpp.
References initialized_.
|
delete |
|
delete |
|
overridevirtual |
Record connection acquisition.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 322 of file system_monitoring_backend.cpp.
References mutex_.
|
overridevirtual |
Record connection release.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 328 of file system_monitoring_backend.cpp.
References mutex_.
|
overridevirtual |
Record a metric value.
| name | Metric name |
| value | Metric value |
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 126 of file system_monitoring_backend.cpp.
References initialized_, monitor_, mutex_, and common::ok().
Referenced by record_metric().


|
overridevirtual |
Record a metric value with tags.
| name | Metric name |
| value | Metric value |
| tags | Metric tags/labels |
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 151 of file system_monitoring_backend.cpp.
References record_metric().

|
overridevirtual |
Record query execution.
| duration | Query execution duration |
| success | Whether query succeeded |
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 282 of file system_monitoring_backend.cpp.
References calculate_derived_metrics(), current_metrics_, database::integrated::adapters::database_metrics::failed_queries, max_latency_samples_, monitor_, mutex_, database::integrated::adapters::database_metrics::query_success_rate, recent_query_latencies_, database::success, database::integrated::adapters::database_metrics::successful_queries, and database::integrated::adapters::database_metrics::total_queries.

|
overridevirtual |
Record transaction begin.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 357 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, active_transactions_, current_metrics_, and mutex_.
|
overridevirtual |
Record transaction commit.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 364 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, active_transactions_, database::integrated::adapters::database_metrics::committed_transactions, current_metrics_, mutex_, database::integrated::adapters::database_metrics::rolled_back_transactions, and database::integrated::adapters::database_metrics::transaction_commit_rate.
|
overridevirtual |
Record transaction rollback.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 385 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, active_transactions_, database::integrated::adapters::database_metrics::committed_transactions, current_metrics_, mutex_, database::integrated::adapters::database_metrics::rolled_back_transactions, and database::integrated::adapters::database_metrics::transaction_commit_rate.
|
overridevirtual |
Reset all metrics.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 251 of file system_monitoring_backend.cpp.
References active_connections_, active_transactions_, current_metrics_, idle_connections_, initialized_, monitor_, mutex_, common::ok(), recent_query_latencies_, and total_connections_.

|
overridevirtual |
Shutdown the monitoring backend gracefully.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 88 of file system_monitoring_backend.cpp.
References current_metrics_, initialized_, monitor_, mutex_, common::ok(), and recent_query_latencies_.
Referenced by ~system_monitoring_backend().


|
overridevirtual |
Update connection pool statistics.
| active | Number of active connections |
| idle | Number of idle connections |
| total | Total pool size |
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 334 of file system_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_connections, active_connections_, database::integrated::adapters::database_metrics::connection_usage_percent, current_metrics_, database::integrated::adapters::database_metrics::idle_connections, idle_connections_, mutex_, database::integrated::adapters::database_metrics::total_connections, and total_connections_.
|
private |
Definition at line 120 of file system_monitoring_backend.h.
Referenced by get_metrics(), reset(), and update_pool_stats().
|
private |
Definition at line 125 of file system_monitoring_backend.h.
Referenced by get_metrics(), record_transaction_begin(), record_transaction_commit(), record_transaction_rollback(), and reset().
|
private |
Definition at line 106 of file system_monitoring_backend.h.
Referenced by check_health().
|
private |
Definition at line 115 of file system_monitoring_backend.h.
Referenced by calculate_derived_metrics(), check_health(), export_prometheus_metrics(), get_database_metrics(), get_metrics(), record_query_execution(), record_transaction_begin(), record_transaction_commit(), record_transaction_rollback(), reset(), shutdown(), and update_pool_stats().
|
private |
Definition at line 121 of file system_monitoring_backend.h.
Referenced by get_metrics(), reset(), and update_pool_stats().
|
private |
Definition at line 107 of file system_monitoring_backend.h.
Referenced by check_health(), get_database_metrics(), get_metrics(), initialize(), is_initialized(), record_metric(), reset(), shutdown(), and ~system_monitoring_backend().
|
private |
Definition at line 117 of file system_monitoring_backend.h.
Referenced by record_query_execution(), and system_monitoring_backend().
|
private |
Definition at line 112 of file system_monitoring_backend.h.
Referenced by initialize(), record_metric(), record_query_execution(), reset(), and shutdown().
|
mutableprivate |
Definition at line 108 of file system_monitoring_backend.h.
Referenced by check_health(), export_prometheus_metrics(), get_database_metrics(), get_metrics(), record_connection_acquired(), record_connection_released(), record_metric(), record_query_execution(), record_transaction_begin(), record_transaction_commit(), record_transaction_rollback(), reset(), shutdown(), and update_pool_stats().
|
private |
Definition at line 116 of file system_monitoring_backend.h.
Referenced by calculate_derived_metrics(), record_query_execution(), reset(), shutdown(), and system_monitoring_backend().
|
private |
Definition at line 109 of file system_monitoring_backend.h.
Referenced by get_database_metrics(), and initialize().
|
private |
Definition at line 122 of file system_monitoring_backend.h.
Referenced by get_metrics(), reset(), and update_pool_stats().