68#include <unordered_map>
79 class monitoring_backend;
219 const std::
string& name,
double value,
220 const std::unordered_map<std::
string, std::
string>& tags);
300 static std::unique_ptr<backends::monitoring_backend>
create_backend(
305 std::unique_ptr<backends::monitoring_backend>
backend_;
Monitoring adapter for database operations.
void update_pool_stats(std::size_t active, std::size_t idle, std::size_t total)
Update connection pool statistics.
common::VoidResult initialize()
Initialize monitoring system.
void record_connection_released()
Record connection release.
void record_query_execution(std::chrono::microseconds duration, bool success)
Record query execution.
void record_transaction_rollback()
Record transaction rollback.
static std::unique_ptr< backends::monitoring_backend > create_backend(const db_monitoring_config &config, monitoring_backend_type backend_type)
Create appropriate backend based on type.
common::Result< backends::health_check_result > check_health()
Perform health check.
bool is_initialized() const
Check if monitoring is initialized.
monitoring_adapter(const monitoring_adapter &)=delete
~monitoring_adapter()
Destructor - ensures graceful shutdown.
common::Result< database_metrics > get_database_metrics()
Get database-specific metrics.
common::VoidResult reset()
Reset all metrics.
monitoring_adapter & operator=(const monitoring_adapter &)=delete
std::unique_ptr< backends::monitoring_backend > backend_
Monitoring backend implementation.
common::Result< backends::metrics_snapshot > get_metrics()
Get current metrics snapshot.
common::VoidResult record_metric(const std::string &name, double value)
Record a metric value.
const db_monitoring_config & config_
monitoring_adapter(const db_monitoring_config &config, monitoring_backend_type backend_type=monitoring_backend_type::auto_select)
Construct monitoring adapter with configuration.
monitoring_adapter(monitoring_adapter &&) noexcept
common::VoidResult shutdown()
Shutdown monitoring system.
std::string export_prometheus_metrics()
Export metrics in Prometheus format.
void record_transaction_commit()
Record transaction commit.
void record_transaction_begin()
Record transaction begin.
void record_connection_acquired()
Record connection acquisition.
Common Result<T> pattern for integrated database system.
Unified configuration for integrated database system.
Abstract interface for monitoring backends.
@ null
No-op backend (discard all logs)
@ auto_select
Automatically select best available backend.
@ fallback
Use std::cout + std::ofstream.
@ system
Use common_system ILogger (fails if unavailable)
monitoring_backend_type
Monitoring backend type selection.
@ auto_select
Automatically select best available backend.
backend_type
Database backend type enumeration.
kcenon::common::Result< T > Result
Primary Result type - use this for all database operations.
kcenon::common::VoidResult VoidResult
Primary VoidResult type - use this for void operations.
Database-specific metrics structure.
std::uint64_t active_transactions
Currently active transactions.
std::size_t idle_connections
Idle connections in pool.
double connection_usage_percent
Percentage of connections in use.
std::size_t total_connections
Total pool size.
std::uint64_t failed_queries
Failed queries.
std::size_t active_connections
Currently active connections.
std::uint64_t rolled_back_transactions
Total rolled-back transactions.
std::uint64_t total_queries
Total queries executed.
std::chrono::microseconds p99_query_latency
99th percentile latency
std::uint64_t successful_queries
Successfully completed queries.
double queries_per_second
Query throughput.
double transaction_commit_rate
Commit rate (0.0 to 1.0)
std::chrono::system_clock::time_point timestamp
When metrics were collected.
std::chrono::microseconds p95_query_latency
95th percentile latency
std::chrono::microseconds max_query_latency
Maximum query latency.
double transactions_per_second
Transaction throughput.
double query_success_rate
Success rate (0.0 to 1.0)
std::chrono::microseconds avg_query_latency
Average query latency.
std::uint64_t committed_transactions
Total committed transactions.
std::chrono::microseconds min_query_latency
Minimum query latency.
Monitoring and metrics configuration.