Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::integrated::adapters::backends::monitoring_backend Class Referenceabstract

Abstract base class for monitoring backends. More...

#include <monitoring_backend.h>

Inheritance diagram for database::integrated::adapters::backends::monitoring_backend:
Inheritance graph
Collaboration diagram for database::integrated::adapters::backends::monitoring_backend:
Collaboration graph

Public Member Functions

virtual ~monitoring_backend ()=default
 
virtual common::VoidResult initialize ()=0
 Initialize the monitoring backend.
 
virtual common::VoidResult shutdown ()=0
 Shutdown the monitoring backend gracefully.
 
virtual bool is_initialized () const =0
 Check if backend is initialized.
 
virtual common::VoidResult record_metric (const std::string &name, double value)=0
 Record a metric value.
 
virtual common::VoidResult record_metric (const std::string &name, double value, const std::unordered_map< std::string, std::string > &tags)=0
 Record a metric value with tags.
 
virtual common::Result< metrics_snapshotget_metrics ()=0
 Get current metrics snapshot.
 
virtual common::Result< health_check_resultcheck_health ()=0
 Perform health check.
 
virtual common::VoidResult reset ()=0
 Reset all metrics.
 
virtual void record_query_execution (std::chrono::microseconds duration, bool success)=0
 Record query execution.
 
virtual void record_connection_acquired ()=0
 Record connection acquisition.
 
virtual void record_connection_released ()=0
 Record connection release.
 
virtual void update_pool_stats (std::size_t active, std::size_t idle, std::size_t total)=0
 Update connection pool statistics.
 
virtual void record_transaction_begin ()=0
 Record transaction begin.
 
virtual void record_transaction_commit ()=0
 Record transaction commit.
 
virtual void record_transaction_rollback ()=0
 Record transaction rollback.
 
virtual common::Result< database_metricsget_database_metrics ()=0
 Get database-specific metrics.
 
virtual std::string export_prometheus_metrics ()=0
 Export metrics in Prometheus format.
 

Detailed Description

Abstract base class for monitoring backends.

All monitoring backends (system, fallback, null) must implement this interface. This enables runtime polymorphism and eliminates conditional compilation.

Definition at line 74 of file monitoring_backend.h.

Constructor & Destructor Documentation

◆ ~monitoring_backend()

virtual database::integrated::adapters::backends::monitoring_backend::~monitoring_backend ( )
virtualdefault

Member Function Documentation

◆ check_health()

virtual common::Result< health_check_result > database::integrated::adapters::backends::monitoring_backend::check_health ( )
pure virtual

◆ export_prometheus_metrics()

virtual std::string database::integrated::adapters::backends::monitoring_backend::export_prometheus_metrics ( )
pure virtual

◆ get_database_metrics()

virtual common::Result< database_metrics > database::integrated::adapters::backends::monitoring_backend::get_database_metrics ( )
pure virtual

◆ get_metrics()

virtual common::Result< metrics_snapshot > database::integrated::adapters::backends::monitoring_backend::get_metrics ( )
pure virtual

◆ initialize()

virtual common::VoidResult database::integrated::adapters::backends::monitoring_backend::initialize ( )
pure virtual

◆ is_initialized()

virtual bool database::integrated::adapters::backends::monitoring_backend::is_initialized ( ) const
pure virtual

◆ record_connection_acquired()

virtual void database::integrated::adapters::backends::monitoring_backend::record_connection_acquired ( )
pure virtual

◆ record_connection_released()

virtual void database::integrated::adapters::backends::monitoring_backend::record_connection_released ( )
pure virtual

◆ record_metric() [1/2]

virtual common::VoidResult database::integrated::adapters::backends::monitoring_backend::record_metric ( const std::string & name,
double value )
pure virtual

◆ record_metric() [2/2]

virtual common::VoidResult database::integrated::adapters::backends::monitoring_backend::record_metric ( const std::string & name,
double value,
const std::unordered_map< std::string, std::string > & tags )
pure virtual

Record a metric value with tags.

Parameters
nameMetric name
valueMetric value
tagsMetric tags/labels
Returns
VoidResult::ok() on success

Implemented in database::integrated::adapters::backends::fallback_monitoring_backend, database::integrated::adapters::backends::null_monitoring_backend, and database::integrated::adapters::backends::system_monitoring_backend.

◆ record_query_execution()

virtual void database::integrated::adapters::backends::monitoring_backend::record_query_execution ( std::chrono::microseconds duration,
bool success )
pure virtual

◆ record_transaction_begin()

virtual void database::integrated::adapters::backends::monitoring_backend::record_transaction_begin ( )
pure virtual

◆ record_transaction_commit()

virtual void database::integrated::adapters::backends::monitoring_backend::record_transaction_commit ( )
pure virtual

◆ record_transaction_rollback()

virtual void database::integrated::adapters::backends::monitoring_backend::record_transaction_rollback ( )
pure virtual

◆ reset()

virtual common::VoidResult database::integrated::adapters::backends::monitoring_backend::reset ( )
pure virtual

◆ shutdown()

virtual common::VoidResult database::integrated::adapters::backends::monitoring_backend::shutdown ( )
pure virtual

◆ update_pool_stats()

virtual void database::integrated::adapters::backends::monitoring_backend::update_pool_stats ( std::size_t active,
std::size_t idle,
std::size_t total )
pure virtual

Update connection pool statistics.

Parameters
activeNumber of active connections
idleNumber of idle connections
totalTotal pool size

Implemented in database::integrated::adapters::backends::fallback_monitoring_backend, database::integrated::adapters::backends::null_monitoring_backend, and database::integrated::adapters::backends::system_monitoring_backend.


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