StormByte-Database 2.0.0
C++26 database module of the StormByte suite
 
Loading...
Searching...
No Matches
StormByte::Database::Telemetry Class Reference

Thread-safe cumulative telemetry for one database connection. More...

#include <StormByte/database/telemetry.hxx>

Inheritance diagram for StormByte::Database::Telemetry:

Classes

class  OperationScope
 Records one operation and its elapsed time on destruction. More...
 

Public Member Functions

virtual ~Telemetry () noexcept
 Virtual destructor, defined out-of-line for the DLL boundary.
 
 Telemetry () noexcept
 Construct zeroed counters.
 
OperationMetrics Metrics (Operation operation) const noexcept
 Obtain a thread-safe metrics snapshot for an operation.
 
std::uint64_t RowsReturned () const noexcept
 Total rows successfully returned by Query and prepared statements.
 
std::uint64_t Events (BackendEvent event) const noexcept
 Number of backend events in a shared category.
 
virtual operator StormByte::String::String () const
 
STORMBYTE_FORCE_INLINE operator std::string () const
 Flatten counters into a caller-owned standard string.
 

Protected Member Functions

 Telemetry (const Telemetry &)=delete
 Copying counters is disabled.
 
 Telemetry (Telemetry &&)=delete
 Moving counters is disabled.
 
Telemetry & operator= (const Telemetry &)=delete
 Copy assignment is disabled.
 
Telemetry & operator= (Telemetry &&)=delete
 Move assignment is disabled.
 
virtual void RecordEvent (BackendEvent event) noexcept
 
void RecordEvents (BackendEvent event, std::uint64_t count) noexcept
 Add a known number of occurrences for one backend event.
 

Friends

class Database
 
class PreparedSTMT
 
class OperationScope
 

Detailed Description

Thread-safe cumulative telemetry for one database connection.

The owning Database exposes a StormByte::Shared handle. Callers may retain that handle after disconnect or Database destruction. Counters are snapshots and do not expose SQL text or bound values.

Constructor & Destructor Documentation

◆ ~Telemetry()

virtual StormByte::Database::Telemetry::~Telemetry ( )
virtualnoexcept

Virtual destructor, defined out-of-line for the DLL boundary.

Reimplemented in StormByte::Database::MariaDB::Telemetry, StormByte::Database::Postgres::Telemetry, and StormByte::Database::SQLite::Telemetry.

◆ Telemetry() [1/3]

StormByte::Database::Telemetry::Telemetry ( )
noexcept

Construct zeroed counters.

◆ Telemetry() [2/3]

StormByte::Database::Telemetry::Telemetry ( const Telemetry &  )
protecteddelete

Copying counters is disabled.

◆ Telemetry() [3/3]

StormByte::Database::Telemetry::Telemetry ( Telemetry &&  )
protecteddelete

Moving counters is disabled.

Member Function Documentation

◆ Events()

std::uint64_t StormByte::Database::Telemetry::Events ( BackendEvent  event) const
noexcept

Number of backend events in a shared category.

Parameters
eventBackend event category.
Returns
Cumulative event count.

◆ Metrics()

OperationMetrics StormByte::Database::Telemetry::Metrics ( Operation  operation) const
noexcept

Obtain a thread-safe metrics snapshot for an operation.

Parameters
operationOperation category.
Returns
Attempts, outcomes, and latency aggregates.

◆ operator std::string()

STORMBYTE_FORCE_INLINE StormByte::Database::Telemetry::operator std::string ( ) const
inline

Flatten counters into a caller-owned standard string.

Returns
Human-readable telemetry snapshot.

◆ operator StormByte::String::String()

virtual StormByte::Database::Telemetry::operator StormByte::String::String ( ) const
virtual
@brief Flatten counters into an owned StormByte string.
Returns
Human-readable telemetry snapshot.

Reimplemented in StormByte::Database::MariaDB::Telemetry, StormByte::Database::Postgres::Telemetry, and StormByte::Database::SQLite::Telemetry.

◆ operator=() [1/2]

Telemetry & StormByte::Database::Telemetry::operator= ( const Telemetry &  )
protecteddelete

Copy assignment is disabled.

◆ operator=() [2/2]

Telemetry & StormByte::Database::Telemetry::operator= ( Telemetry &&  )
protecteddelete

Move assignment is disabled.

◆ RecordEvent()

virtual void StormByte::Database::Telemetry::RecordEvent ( BackendEvent  event)
protectedvirtualnoexcept
@brief Record a categorized backend event.
Parameters
eventEvent category.

◆ RecordEvents()

void StormByte::Database::Telemetry::RecordEvents ( BackendEvent  event,
std::uint64_t  count 
)
protectednoexcept

Add a known number of occurrences for one backend event.

Parameters
eventEvent category.
countNumber of occurrences.

◆ RowsReturned()

std::uint64_t StormByte::Database::Telemetry::RowsReturned ( ) const
noexcept

Total rows successfully returned by Query and prepared statements.

Returns
Cumulative row count.

Friends And Related Symbol Documentation

◆ Database

friend class Database
friend

◆ OperationScope

friend class OperationScope
friend

◆ PreparedSTMT

friend class PreparedSTMT
friend

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