|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Basic monitoring backend using internal metrics storage. More...
#include <fallback_monitoring_backend.h>


Public Member Functions | |
| fallback_monitoring_backend (const db_monitoring_config &config) | |
| ~fallback_monitoring_backend () override | |
| fallback_monitoring_backend (const fallback_monitoring_backend &)=delete | |
| fallback_monitoring_backend & | operator= (const fallback_monitoring_backend &)=delete |
| fallback_monitoring_backend (fallback_monitoring_backend &&)=delete | |
| fallback_monitoring_backend & | operator= (fallback_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 | |
| std::chrono::microseconds | calculate_percentile (double percentile) |
| Calculate percentile from latency samples. | |
| void | update_avg_latency () |
| Update average query latency. | |
Private Attributes | |
| const db_monitoring_config & | config_ |
| bool | initialized_ |
| std::mutex | mutex_ |
| std::chrono::steady_clock::time_point | start_time_ |
| database_metrics | metrics_ |
| std::vector< std::chrono::microseconds > | query_latencies_ |
| std::unordered_map< std::string, double > | generic_metrics_ |
Basic monitoring backend using internal metrics storage.
This backend provides simple monitoring when monitoring_system is unavailable. Stores metrics in memory and provides basic health checks.
Definition at line 45 of file fallback_monitoring_backend.h.
|
explicit |
Definition at line 34 of file fallback_monitoring_backend.cpp.
|
override |
Definition at line 39 of file fallback_monitoring_backend.cpp.
References initialized_, and shutdown().

|
delete |
|
delete |
|
private |
Calculate percentile from latency samples.
Definition at line 307 of file fallback_monitoring_backend.cpp.
References query_latencies_.
|
overridevirtual |
Perform health check.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 137 of file fallback_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, 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, metrics_, 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, and database::integrated::adapters::database_metrics::total_queries.
|
overridevirtual |
Export metrics in Prometheus format.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 284 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_connections, database::integrated::adapters::database_metrics::avg_query_latency, database::integrated::adapters::database_metrics::idle_connections, metrics_, mutex_, database::integrated::adapters::database_metrics::query_success_rate, and database::integrated::adapters::database_metrics::total_queries.
|
overridevirtual |
Get database-specific metrics.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 272 of file fallback_monitoring_backend.cpp.
References initialized_, metrics_, mutex_, and database::integrated::adapters::database_metrics::timestamp.
|
overridevirtual |
Get current metrics snapshot.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 99 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_connections, 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, database::integrated::adapters::database_metrics::failed_queries, database::integrated::adapters::backends::metrics_snapshot::gauges, generic_metrics_, database::integrated::adapters::database_metrics::idle_connections, initialized_, metrics_, mutex_, 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, and database::integrated::adapters::database_metrics::total_queries.
|
overridevirtual |
Initialize the monitoring backend.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 47 of file fallback_monitoring_backend.cpp.
References initialized_, common::ok(), and start_time_.

|
overridevirtual |
Check if backend is initialized.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 74 of file fallback_monitoring_backend.cpp.
References initialized_.
|
delete |
|
delete |
|
overridevirtual |
Record connection acquisition.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 222 of file fallback_monitoring_backend.cpp.
|
overridevirtual |
Record connection release.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 227 of file fallback_monitoring_backend.cpp.
|
overridevirtual |
Record a metric value.
| name | Metric name |
| value | Metric value |
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 79 of file fallback_monitoring_backend.cpp.
References generic_metrics_, initialized_, 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 91 of file fallback_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 191 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::failed_queries, metrics_, mutex_, query_latencies_, database::integrated::adapters::database_metrics::query_success_rate, database::success, database::integrated::adapters::database_metrics::successful_queries, database::integrated::adapters::database_metrics::total_queries, and update_avg_latency().

|
overridevirtual |
Record transaction begin.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 246 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, metrics_, and mutex_.
|
overridevirtual |
Record transaction commit.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 252 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, database::integrated::adapters::database_metrics::committed_transactions, metrics_, and mutex_.
|
overridevirtual |
Record transaction rollback.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 262 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_transactions, metrics_, mutex_, and database::integrated::adapters::database_metrics::rolled_back_transactions.
|
overridevirtual |
Reset all metrics.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 177 of file fallback_monitoring_backend.cpp.
References generic_metrics_, initialized_, metrics_, mutex_, common::ok(), and query_latencies_.

|
overridevirtual |
Shutdown the monitoring backend gracefully.
Implements database::integrated::adapters::backends::monitoring_backend.
Definition at line 59 of file fallback_monitoring_backend.cpp.
References generic_metrics_, initialized_, metrics_, mutex_, common::ok(), and query_latencies_.
Referenced by ~fallback_monitoring_backend().


|
private |
Update average query latency.
Definition at line 326 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::avg_query_latency, database::integrated::adapters::database_metrics::max_query_latency, metrics_, 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 query_latencies_.
Referenced by record_query_execution().

|
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 232 of file fallback_monitoring_backend.cpp.
References database::integrated::adapters::database_metrics::active_connections, database::integrated::adapters::database_metrics::connection_usage_percent, database::integrated::adapters::database_metrics::idle_connections, metrics_, mutex_, and database::integrated::adapters::database_metrics::total_connections.
|
private |
Definition at line 92 of file fallback_monitoring_backend.h.
Referenced by check_health().
|
private |
Definition at line 100 of file fallback_monitoring_backend.h.
Referenced by get_metrics(), record_metric(), reset(), and shutdown().
|
private |
Definition at line 93 of file fallback_monitoring_backend.h.
Referenced by check_health(), get_database_metrics(), get_metrics(), initialize(), is_initialized(), record_metric(), reset(), shutdown(), and ~fallback_monitoring_backend().
|
private |
Definition at line 98 of file fallback_monitoring_backend.h.
Referenced by check_health(), export_prometheus_metrics(), get_database_metrics(), get_metrics(), record_query_execution(), record_transaction_begin(), record_transaction_commit(), record_transaction_rollback(), reset(), shutdown(), update_avg_latency(), and update_pool_stats().
|
mutableprivate |
Definition at line 94 of file fallback_monitoring_backend.h.
Referenced by check_health(), export_prometheus_metrics(), get_database_metrics(), get_metrics(), record_metric(), record_query_execution(), record_transaction_begin(), record_transaction_commit(), record_transaction_rollback(), reset(), shutdown(), and update_pool_stats().
|
private |
Definition at line 99 of file fallback_monitoring_backend.h.
Referenced by calculate_percentile(), record_query_execution(), reset(), shutdown(), and update_avg_latency().
|
private |
Definition at line 95 of file fallback_monitoring_backend.h.
Referenced by initialize().