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

Maps prom's metric types onto prometheus-cpp families and series. More...

#include <adapter.hpp>

Inheritance diagram for prom::prometheus_cpp::PrometheusCppAdapter:
Inheritance graph
[legend]
Collaboration diagram for prom::prometheus_cpp::PrometheusCppAdapter:
Collaboration graph
[legend]

Classes

class  Impl
 

Public Member Functions

 PrometheusCppAdapter ()
 Construct with a freshly-allocated, owned registry.
 
 PrometheusCppAdapter (std::shared_ptr< prometheus::Registry > registry)
 Construct around an externally-owned registry (shared), e.g.
 
 ~PrometheusCppAdapter () override
 
prometheus::Registry & registry () const noexcept
 The registry backing this adapter — hand it to a prometheus::Exposer or serialize it for a scrape response.
 
std::shared_ptr< prometheus::Registry > registry_ptr () const noexcept
 Shared ownership of the backing registry.
 
std::string_view backend_name () const noexcept override
 Stable identifier of the backend (e.g. "null", "prometheus-cpp").
 
prom::MetricHandle register_metric (const prom::MetricMeta &meta) noexcept override
 Register a metric family.
 
prom::MetricHandle resolve (const prom::MetricHandle &family, const prom::Labels &dynamic) noexcept override
 Resolve the labeled child of family for the given dynamic labels, creating it on first request.
 
void inc (const prom::MetricHandle &handle, double amount) noexcept override
 Increase the series behind handle by amount (counter/gauge).
 
void dec (const prom::MetricHandle &handle, double amount) noexcept override
 Decrease the series behind handle by amount (gauge).
 
void set (const prom::MetricHandle &handle, double value) noexcept override
 Set the series behind handle to value (gauge/untyped).
 
void observe (const prom::MetricHandle &handle, double value) noexcept override
 Record an observation against handle (histogram/summary).
 
void set_info (const prom::MetricHandle &handle, std::span< const prom::Label > labels) noexcept override
 Replace the label set carried by an info metric.
 
void set_state (const prom::MetricHandle &handle, std::string_view state, bool active) noexcept override
 Set the boolean value of one member of a state set.
 
- 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
 
virtual void set_unit (const MetricHandle &, const Unit &) noexcept
 Late unit inference hook.
 

Detailed Description

Maps prom's metric types onto prometheus-cpp families and series.

Owns (or shares) the underlying prometheus::Registry, which the host exposes via an exposer/scrape endpoint.

Mapping. Counter/Gauge/Histogram/Summary map to their direct prometheus-cpp equivalents. Untyped maps to a Gauge. Info maps to a <name> Gauge whose label set carries the payload at value 1. StateSet maps to a Gauge family with one series per state (labelled by the metric name), each 0 or 1.

Constructor & Destructor Documentation

◆ PrometheusCppAdapter() [1/2]

prom::prometheus_cpp::PrometheusCppAdapter::PrometheusCppAdapter ( )

Construct with a freshly-allocated, owned registry.

◆ PrometheusCppAdapter() [2/2]

prom::prometheus_cpp::PrometheusCppAdapter::PrometheusCppAdapter ( std::shared_ptr< prometheus::Registry >  registry)
explicit

Construct around an externally-owned registry (shared), e.g.

one already wired to an exposer.

◆ ~PrometheusCppAdapter()

prom::prometheus_cpp::PrometheusCppAdapter::~PrometheusCppAdapter ( )
overridedefault

Member Function Documentation

◆ backend_name()

std::string_view prom::prometheus_cpp::PrometheusCppAdapter::backend_name ( ) const
overridevirtualnoexcept

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

Implements prom::Adapter.

◆ dec()

void prom::prometheus_cpp::PrometheusCppAdapter::dec ( const prom::MetricHandle handle,
double  amount 
)
overridevirtualnoexcept

Decrease the series behind handle by amount (gauge).

Implements prom::Adapter.

◆ inc()

void prom::prometheus_cpp::PrometheusCppAdapter::inc ( const prom::MetricHandle handle,
double  amount 
)
overridevirtualnoexcept

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

Implements prom::Adapter.

◆ observe()

void prom::prometheus_cpp::PrometheusCppAdapter::observe ( const prom::MetricHandle handle,
double  value 
)
overridevirtualnoexcept

Record an observation against handle (histogram/summary).

Implements prom::Adapter.

◆ register_metric()

prom::MetricHandle prom::prometheus_cpp::PrometheusCppAdapter::register_metric ( const prom::MetricMeta meta)
overridevirtualnoexcept

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.

◆ registry()

prometheus::Registry & prom::prometheus_cpp::PrometheusCppAdapter::registry ( ) const
noexcept

The registry backing this adapter — hand it to a prometheus::Exposer or serialize it for a scrape response.

◆ registry_ptr()

std::shared_ptr<::prometheus::Registry > prom::prometheus_cpp::PrometheusCppAdapter::registry_ptr ( ) const
noexcept

Shared ownership of the backing registry.

◆ resolve()

prom::MetricHandle prom::prometheus_cpp::PrometheusCppAdapter::resolve ( const prom::MetricHandle family,
const prom::Labels dynamic 
)
overridevirtualnoexcept

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::prometheus_cpp::PrometheusCppAdapter::set ( const prom::MetricHandle handle,
double  value 
)
overridevirtualnoexcept

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

Implements prom::Adapter.

◆ set_info()

void prom::prometheus_cpp::PrometheusCppAdapter::set_info ( const prom::MetricHandle handle,
std::span< const prom::Label labels 
)
overridevirtualnoexcept

Replace the label set carried by an info metric.

Implements prom::Adapter.

◆ set_state()

void prom::prometheus_cpp::PrometheusCppAdapter::set_state ( const prom::MetricHandle handle,
std::string_view  state,
bool  active 
)
overridevirtualnoexcept

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

Implements prom::Adapter.


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