10#ifndef __CWIST_METRICS_H__
11#define __CWIST_METRICS_H__
uintmax_t cwist_metric_load(const cwist_metrics_registry_t *reg, cwist_metric_id_t id)
Atomically load the current raw value of a metric.
cwist_metrics_registry_t * cwist_metrics_registry(void)
Obtain the global registry, creating it on first call.
cwist_metric_id
Pre-defined framework metrics.
@ CWIST_METRIC_REQUESTS_TOTAL
@ CWIST_METRIC_HTTP_HEADER_OVERFLOW
@ CWIST_METRIC_TLS_HANDSHAKES_TLS13
@ CWIST_METRIC_TLS_CIPHERS_CHACHA20
@ CWIST_METRIC_TLS_CIPHERS_AES128_GCM
@ CWIST_METRIC_TLS_HANDSHAKES_TLS12
@ CWIST_METRIC_STREAMS_HTTP3
@ CWIST_METRIC_URING_BUFFERS_ACTIVE
@ CWIST_METRIC_VALIDATION_ERRORS
@ CWIST_METRIC_TLS_CONNECTIONS_ACTIVE
@ CWIST_METRIC_REQUEST_DURATION_NS
@ CWIST_METRIC_H2_HEADERS_DROPPED
@ CWIST_METRIC_FLOW_WINDOW_HEALTH
@ CWIST_METRIC_STREAMS_HTTP2
@ CWIST_METRIC_TLS_CIPHERS_OTHER
@ CWIST_METRIC_TLS_CIPHERS_AES256_GCM
@ CWIST_METRIC_TLS_HANDSHAKES_TOTAL
@ CWIST_METRIC_HTTP_CONTINUATION_SHED
@ CWIST_METRIC_URING_SQES_PENDING
@ CWIST_METRIC_TLS_HANDSHAKES_RESUMED
enum cwist_metric_id cwist_metric_id_t
Pre-defined framework metrics.
void cwist_metrics_serve_http(struct cwist_http_response *res)
Convenience helper: populate an HTTP response with /metrics body.
void cwist_metrics_reset(cwist_metrics_registry_t *reg)
Reset all metrics in the registry to zero.
struct cwist_metrics_registry cwist_metrics_registry_t
Global metrics registry (singleton, lazy-initialised).
void cwist_metric_set(cwist_metrics_registry_t *reg, cwist_metric_id_t id, long double value)
Set a gauge metric to an absolute value.
char * cwist_metrics_render_prometheus(const cwist_metrics_registry_t *reg)
Render all metrics in Prometheus text exposition format.
cwist_metric_type
Supported Prometheus metric kinds.
void cwist_metric_inc(cwist_metrics_registry_t *reg, cwist_metric_id_t id)
Increment a counter metric by 1.
struct cwist_metric_value cwist_metric_value_t
Atomic metric value container.
enum cwist_metric_type cwist_metric_type_t
Supported Prometheus metric kinds.
void cwist_metric_observe(cwist_metrics_registry_t *reg, cwist_metric_id_t id, long double value)
Observe a value into a histogram-like metric.
struct cwist_metric cwist_metric_t
Single metric definition.
void cwist_metric_add(cwist_metrics_registry_t *reg, cwist_metric_id_t id, uintmax_t delta)
Increment a counter metric by delta.
HTTP Response Object. Supports standard string body or Zero-Copy pointer body.
Atomic metric value container.
Single metric definition.
cwist_metric_value_t value