prom 0.1.0
Client-independent C++23 Prometheus/OpenMetrics metric abstraction
Loading...
Searching...
No Matches
Public Member Functions | List of all members
prom::CompositeAdapter Class Referencefinal

A backend that forwards every call to a fixed set of child adapters. More...

#include <composite_adapter.hpp>

Inheritance diagram for prom::CompositeAdapter:
Inheritance graph
[legend]
Collaboration diagram for prom::CompositeAdapter:
Collaboration graph
[legend]

Public Member Functions

 CompositeAdapter (std::vector< AdapterPtr > adapters)
 Construct from an explicit list of adapters. Null entries are ignored.
 
 CompositeAdapter (const std::initializer_list< AdapterPtr > adapters)
 Convenience constructor: CompositeAdapter{a, b, c}.
 
std::span< const AdapterPtradapters () const noexcept
 The wrapped adapters, in dispatch order (nulls already removed).
 
std::string_view backend_name () const noexcept override
 Stable identifier of the backend (e.g. "null", "prometheus-cpp").
 
MetricHandle register_metric (const MetricMeta &meta) noexcept override
 Register a metric family.
 
MetricHandle resolve (const MetricHandle &family, const Labels &dynamic) noexcept override
 Resolve the labeled child of family for the given dynamic labels, creating it on first request.
 
void inc (const MetricHandle &handle, const double amount) noexcept override
 Increase the series behind handle by amount (counter/gauge).
 
void dec (const MetricHandle &handle, const double amount) noexcept override
 Decrease the series behind handle by amount (gauge).
 
void set (const MetricHandle &handle, const double value) noexcept override
 Set the series behind handle to value (gauge/untyped).
 
void observe (const MetricHandle &handle, const double value) noexcept override
 Record an observation against handle (histogram/summary).
 
void set_info (const MetricHandle &handle, const std::span< const Label > labels) noexcept override
 Replace the label set carried by an info metric.
 
void set_state (const MetricHandle &handle, const std::string_view state, const bool active) noexcept override
 Set the boolean value of one member of a state set.
 
void set_unit (const MetricHandle &handle, const Unit &unit) noexcept override
 Late unit inference hook.
 
- Public Member Functions inherited from prom::Adapter
 Adapter ()=default
 
 Adapter (const Adapter &)=delete
 
Adapteroperator= (const Adapter &)=delete
 
 Adapter (Adapter &&)=delete
 
Adapteroperator= (Adapter &&)=delete
 
virtual ~Adapter ()=default
 

Detailed Description

A backend that forwards every call to a fixed set of child adapters.

The adapter list is captured at construction and never mutated afterwards, so — given that each child honours the Adapter threading contract — the composite itself needs no locking and is safe to call from any thread. Null entries in the supplied list are dropped so child indices stay dense.

Constructor & Destructor Documentation

◆ CompositeAdapter() [1/2]

prom::CompositeAdapter::CompositeAdapter ( std::vector< AdapterPtr adapters)
inlineexplicit

Construct from an explicit list of adapters. Null entries are ignored.

◆ CompositeAdapter() [2/2]

prom::CompositeAdapter::CompositeAdapter ( const std::initializer_list< AdapterPtr adapters)
inline

Convenience constructor: CompositeAdapter{a, b, c}.

Member Function Documentation

◆ adapters()

std::span< const AdapterPtr > prom::CompositeAdapter::adapters ( ) const
inlinenoexcept

The wrapped adapters, in dispatch order (nulls already removed).

◆ backend_name()

std::string_view prom::CompositeAdapter::backend_name ( ) const
inlineoverridevirtualnoexcept

Stable identifier of the backend (e.g. "null", "prometheus-cpp").

Implements prom::Adapter.

◆ dec()

void prom::CompositeAdapter::dec ( const MetricHandle handle,
const double  amount 
)
inlineoverridevirtualnoexcept

Decrease the series behind handle by amount (gauge).

Implements prom::Adapter.

◆ inc()

void prom::CompositeAdapter::inc ( const MetricHandle handle,
const double  amount 
)
inlineoverridevirtualnoexcept

Increase the series behind handle by amount (counter/gauge).

Implements prom::Adapter.

◆ observe()

void prom::CompositeAdapter::observe ( const MetricHandle handle,
const double  value 
)
inlineoverridevirtualnoexcept

Record an observation against handle (histogram/summary).

Implements prom::Adapter.

◆ register_metric()

MetricHandle prom::CompositeAdapter::register_metric ( const MetricMeta meta)
inlineoverridevirtualnoexcept

Register a metric family.

Must return a non-null handle even on failure (fall back to an inert handle) so callers never have to null-check.

Implements prom::Adapter.

◆ resolve()

MetricHandle prom::CompositeAdapter::resolve ( const MetricHandle family,
const Labels dynamic 
)
inlineoverridevirtualnoexcept

Resolve the labeled child of family for the given dynamic labels, creating it on first request.

The backend owns the child cache. Must return a non-null handle.

Implements prom::Adapter.

◆ set()

void prom::CompositeAdapter::set ( const MetricHandle handle,
const double  value 
)
inlineoverridevirtualnoexcept

Set the series behind handle to value (gauge/untyped).

Implements prom::Adapter.

◆ set_info()

void prom::CompositeAdapter::set_info ( const MetricHandle handle,
const std::span< const Label labels 
)
inlineoverridevirtualnoexcept

Replace the label set carried by an info metric.

Implements prom::Adapter.

◆ set_state()

void prom::CompositeAdapter::set_state ( const MetricHandle handle,
const std::string_view  state,
const bool  active 
)
inlineoverridevirtualnoexcept

Set the boolean value of one member of a state set.

Implements prom::Adapter.

◆ set_unit()

void prom::CompositeAdapter::set_unit ( const MetricHandle ,
const Unit  
)
inlineoverridevirtualnoexcept

Late unit inference hook.

Called when a metric that declared no unit latches the unit of its first dimensional observation. Optional — backends that cannot rename a registered series may ignore it.

Reimplemented from prom::Adapter.


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