Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::null_metric_collector Class Reference

No-op implementation for when metrics are disabled. More...

#include <metric_collector_interface.h>

Inheritance diagram for kcenon::common::interfaces::null_metric_collector:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::null_metric_collector:
Collaboration graph

Public Member Functions

void increment (std::string_view, double=1.0, const metric_labels &={}) override
 Increment a counter metric.
 
void gauge (std::string_view, double, const metric_labels &={}) override
 Set a gauge metric to an absolute value.
 
void histogram (std::string_view, double, const metric_labels &={}) override
 Record a histogram observation.
 
void timing (std::string_view, std::chrono::nanoseconds, const metric_labels &={}) override
 Record a timing measurement.
 
std::string get_implementation_name () const override
 Get the implementation name for logging/debugging.
 
- Public Member Functions inherited from kcenon::common::interfaces::IMetricCollector
virtual ~IMetricCollector ()=default
 

Detailed Description

No-op implementation for when metrics are disabled.

This implementation silently discards all metrics, useful for:

  • Testing without metric dependencies
  • Disabling metrics in production for performance
  • Default implementation when no collector is configured

Example usage:

// Use null collector when metrics are disabled
std::shared_ptr<IMetricCollector> collector =
metrics_enabled ? create_prometheus_collector()
: std::make_shared<null_metric_collector>();
No-op implementation for when metrics are disabled.

Definition at line 223 of file metric_collector_interface.h.

Member Function Documentation

◆ gauge()

void kcenon::common::interfaces::null_metric_collector::gauge ( std::string_view name,
double value,
const metric_labels & labels = {} )
inlineoverridevirtual

Set a gauge metric to an absolute value.

Gauges represent instantaneous values that can go up or down, such as temperature, memory usage, or active connections.

Parameters
nameMetric name
valueCurrent value (can be negative)
labelsOptional dimensional labels

Implements kcenon::common::interfaces::IMetricCollector.

Definition at line 229 of file metric_collector_interface.h.

231 {}) override {}

◆ get_implementation_name()

std::string kcenon::common::interfaces::null_metric_collector::get_implementation_name ( ) const
inlinenodiscardoverridevirtual

Get the implementation name for logging/debugging.

Returns
Implementation identifier string

Implements kcenon::common::interfaces::IMetricCollector.

Definition at line 241 of file metric_collector_interface.h.

241 {
242 return "null_metric_collector";
243 }

◆ histogram()

void kcenon::common::interfaces::null_metric_collector::histogram ( std::string_view name,
double value,
const metric_labels & labels = {} )
inlineoverridevirtual

Record a histogram observation.

Histograms track the distribution of values across configurable buckets, useful for measuring sizes, counts, or any discrete values.

Parameters
nameMetric name
valueObserved value
labelsOptional dimensional labels

Implements kcenon::common::interfaces::IMetricCollector.

Definition at line 233 of file metric_collector_interface.h.

235 {}) override {}

◆ increment()

void kcenon::common::interfaces::null_metric_collector::increment ( std::string_view name,
double value = 1.0,
const metric_labels & labels = {} )
inlineoverridevirtual

Increment a counter metric.

Counters are monotonically increasing values, typically used for counting events (requests, errors, completed jobs, etc.).

Parameters
nameMetric name (should follow naming conventions, e.g., snake_case)
valueIncrement value (default: 1.0, must be non-negative)
labelsOptional dimensional labels for filtering/grouping

Implements kcenon::common::interfaces::IMetricCollector.

Definition at line 225 of file metric_collector_interface.h.

227 {}) override {}

◆ timing()

void kcenon::common::interfaces::null_metric_collector::timing ( std::string_view name,
std::chrono::nanoseconds duration,
const metric_labels & labels = {} )
inlineoverridevirtual

Record a timing measurement.

Timing metrics are specialized histograms for duration measurements. Implementations may convert to appropriate units (ms, s, etc.).

Parameters
nameMetric name
durationDuration measurement
labelsOptional dimensional labels

Implements kcenon::common::interfaces::IMetricCollector.

Definition at line 237 of file metric_collector_interface.h.

239 {}) override {}

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