26#include <unordered_map>
63 const std::string& name,
double value,
64 const std::unordered_map<std::string, std::string>& tags)
override;
73 void update_pool_stats(std::size_t active, std::size_t idle, std::size_t total)
override;
Basic monitoring backend using internal metrics storage.
fallback_monitoring_backend(const db_monitoring_config &config)
void record_transaction_rollback() override
Record transaction rollback.
bool is_initialized() const override
Check if backend is initialized.
void record_connection_acquired() override
Record connection acquisition.
void record_transaction_begin() override
Record transaction begin.
fallback_monitoring_backend(fallback_monitoring_backend &&)=delete
common::VoidResult initialize() override
Initialize the monitoring backend.
fallback_monitoring_backend & operator=(fallback_monitoring_backend &&)=delete
void update_pool_stats(std::size_t active, std::size_t idle, std::size_t total) override
Update connection pool statistics.
common::Result< metrics_snapshot > get_metrics() override
Get current metrics snapshot.
std::chrono::steady_clock::time_point start_time_
database_metrics metrics_
fallback_monitoring_backend & operator=(const fallback_monitoring_backend &)=delete
void record_transaction_commit() override
Record transaction commit.
std::unordered_map< std::string, double > generic_metrics_
void record_query_execution(std::chrono::microseconds duration, bool success) override
Record query execution.
void record_connection_released() override
Record connection release.
~fallback_monitoring_backend() override
fallback_monitoring_backend(const fallback_monitoring_backend &)=delete
std::chrono::microseconds calculate_percentile(double percentile)
Calculate percentile from latency samples.
std::vector< std::chrono::microseconds > query_latencies_
const db_monitoring_config & config_
std::string export_prometheus_metrics() override
Export metrics in Prometheus format.
common::VoidResult reset() override
Reset all metrics.
common::Result< database_metrics > get_database_metrics() override
Get database-specific metrics.
void update_avg_latency()
Update average query latency.
common::VoidResult shutdown() override
Shutdown the monitoring backend gracefully.
common::Result< health_check_result > check_health() override
Perform health check.
common::VoidResult record_metric(const std::string &name, double value) override
Record a metric value.
Abstract base class for monitoring backends.
Database monitoring adapter with runtime backend selection.
Abstract interface for monitoring backends.
Database-specific metrics structure.
Monitoring and metrics configuration.