# Poco

# namespace Prometheus

## Overview

Classes: AtomicFloat, CallbackMetric, Collector, Counter, CounterSample, Exporter, Gauge, GaugeSample, Histogram, HistogramData, HistogramSample, IntCounter, IntGauge, LabeledMetric, LabeledMetricImpl, Metric, MetricsRequestHandler, MetricsServer, ProcessCollector, Registry, TextExporter, ThreadPoolCollector

Types Aliases: CallbackCounter, CallbackGauge, CallbackIntCounter, CallbackIntGauge

## Classes

### class AtomicFloat

This class provides efficient atomic operations on float and double values.

### class CallbackMetric

A generic Metric implementation where the sample is obtained via a callback function or lambda.

### class Collector

This is the base class for all metrics, such as Counter, Gauge and Histogram.

### class Counter

A generic counter supporting labels.

### class CounterSample

### class Exporter

The Exporter interface is used to format and write metrics to an output stream.

### class Gauge

A generic gauge supporting labels.

### class GaugeSample

### class Histogram

A histogram with a configurable number of buckets.

### struct HistogramData

### class HistogramSample

### class IntCounter

IntCounter is a very low overhead implementation of a Counter, supporting 64-bit unsigned integer values only, using std::atomic Labels are not supported.

### class IntGauge

IntGauge is a very low overhead implementation of a Gauge, supporting 64-bit integer values only, using std::atomic.

### class LabeledMetric

This class adds support for labels to the basic Metric class.

### class LabeledMetricImpl

A helper class for implementing LabeledMetric classes such as Counter, Gauge and Histogram.

### class Metric

This is the base class for all metrics, such as Counter, Gauge and Histogram.

### class MetricsRequestHandler

This class handles incoming HTTP requests for metrics in the Prometheus text format.

### class MetricsServer

A basic HTTP server for handling Prometheus metrics scraping requests, based on Poco::Net::HTTPServer.

### class ProcessCollector

This Collector provides process-specific metrics: - process_cpu_seconds_total: Total user and system CPU time spent in seconds.

### class Registry

The metric registry is a collection of all active Collector instances.

### class TextExporter

Exporter implementation for the Prometheus text format.

### class ThreadPoolCollector

This Collector provides Poco::ThreadPool specific metrics: - poco_threadpool_max_threads: Maximum number of threads available in the thread pool (capacity).

## Types Aliases

### CallbackCounter

using CallbackCounter = CallbackMetric < double, Metric::Type::COUNTER >;

### CallbackGauge

using CallbackGauge = CallbackMetric < double, Metric::Type::GAUGE >;

### CallbackIntCounter

using CallbackIntCounter = CallbackMetric < Poco::UInt64, Metric::Type::COUNTER >;

### CallbackIntGauge

using CallbackIntGauge = CallbackMetric < Poco::Int64, Metric::Type::GAUGE >;