Metrics

Reference for all Prometheus metrics exposed by the HTTP Add-on

Warning

You are currently viewing v0.16 of the documentation and it is not the latest. For the most recent documentation, kindly click here.

The interceptor and the external scaler expose metrics via OpenTelemetry, with a Prometheus-compatible endpoint enabled by default on each component.

Endpoint configuration

SettingDefaultDescription
Port2223Configurable via OTEL_PROM_EXPORTER_PORT.
Path/metricsStandard Prometheus scrape path.
EnabledtrueConfigurable via OTEL_PROM_EXPORTER_ENABLED.

Both components also support OTLP metric export. See Environment Variables for configuration.

Interceptor metrics

Request count

Prometheus nameinterceptor_request_count_total
OTel instrument nameinterceptor.request.count
TypeCounter
DescriptionTotal requests processed by the interceptor proxy.

Labels:

LabelDescription
codeHTTP response status code (integer).
cold_starttrue when the request waited for backend readiness, including waits that ended before the backend became ready; otherwise false.
methodHTTP request method. Non-standard methods are normalized to _OTHER (see Method normalization).
route_nameName of the matched InterceptorRoute or HTTPScaledObject.
route_namespaceNamespace of the matched route resource.

Request concurrency

Prometheus nameinterceptor_request_concurrency
OTel instrument nameinterceptor.request.concurrency
TypeUpDownCounter (gauge)
DescriptionRequests currently in-flight at the interceptor proxy.

Labels:

LabelDescription
route_nameName of the matched InterceptorRoute or HTTPScaledObject.
route_namespaceNamespace of the matched route resource.

Request duration

Prometheus nameinterceptor_request_duration_seconds
OTel instrument nameinterceptor.request.duration
TypeHistogram
UnitSeconds
DescriptionTime from request received to response written.

Bucket boundaries: 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10, 15, 30, 60, 120, 300. The first boundaries follow the OTel HTTP semantic conventions, and the additional boundaries expose longer cold-start request durations.

Labels:

LabelDescription
codeHTTP response status code (integer).
cold_starttrue when the request waited for backend readiness, including waits that ended before the backend became ready; otherwise false.
methodHTTP request method. Non-standard methods are normalized to _OTHER (see Method normalization).
route_nameName of the matched InterceptorRoute or HTTPScaledObject.
route_namespaceNamespace of the matched route resource.

Cold-start duration

Prometheus nameinterceptor_cold_start_duration_seconds
OTel instrument nameinterceptor.cold_start.duration
TypeHistogram
UnitSeconds
DescriptionTime spent waiting for a cold-start backend to become ready.

The metric is recorded only when a request waits for backend readiness.

Bucket boundaries: 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10, 15, 30, 60, 120, 300.

Labels:

LabelDescription
outcomeReadiness wait result: ready when backend became ready, timeout when wait ended with another error, or cancelled when request context was cancelled.
route_nameName of the matched InterceptorRoute or HTTPScaledObject.
route_namespaceNamespace of the matched route resource.

Cold-start rejections

Prometheus nameinterceptor_cold_start_rejections_total
OTel instrument nameinterceptor.cold_start.rejections
TypeCounter
DescriptionRequests rejected because the cold-start pending request limit was reached.

Labels:

LabelDescription
route_nameName of the matched InterceptorRoute or HTTPScaledObject.
route_namespaceNamespace of the matched route resource.

Method normalization

The method label accepts the following standard HTTP methods without modification:

CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT, TRACE

All other method values are replaced with _OTHER to prevent unbounded label cardinality.

Scaler metrics

Pinger fetch duration

Prometheus namescaler_pinger_fetch_duration_seconds
OTel instrument namescaler.pinger.fetch.duration
TypeHistogram
UnitSeconds
DescriptionDuration of a queue pinger fetch cycle across all interceptor pods.

Bucket boundaries: 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5

Pinger fetch errors

Prometheus namescaler_pinger_fetch_errors_total
OTel instrument namescaler.pinger.fetch.errors
TypeCounter
DescriptionTotal failed queue pinger fetch cycles.

Pinger endpoints

Prometheus namescaler_pinger_endpoints
OTel instrument namescaler.pinger.endpoints
TypeGauge
DescriptionNumber of interceptor endpoints the scaler is polling.