Metrics
The bridge exposes Prometheus-format metrics on the internal listener at
GET /metrics. This endpoint is not served on the public Funnel listener.
Core Metric Families
oidc_proxy_http_requests_total{route,method,decision,status_code}oidc_proxy_http_request_duration_seconds{route,method,decision}oidc_proxy_jwks_prime_total{result}oidc_proxy_jwks_refresh_total{result,error_kind}oidc_proxy_jwks_serving_stale_total{error_kind}oidc_proxy_jwks_age_secondsoidc_proxy_jwks_readyoidc_proxy_jwks_kid_countoidc_proxy_tsnet_start_total{result,error_kind}oidc_proxy_tsnet_state_transitions_total{state}oidc_proxy_public_listener_restarts_total{reason}oidc_proxy_leader_election_transitions_total{state}oidc_proxy_leaderoidc_proxy_public_readyoidc_proxy_issuer_host_verification_total{result}oidc_proxy_auth_key_mint_total{result,error_kind}oidc_proxy_process_start_time_secondsoidc_proxy_health_server_start_totaloidc_proxy_build_info{version,go_version}
Label Policy
Metrics intentionally use low-cardinality labels only:
route:discovery,jwks,unknowndecision:served,denied_missing_source,denied_cidr,jwks_not_ready,method_not_allowed,not_foundresult:success,failureerror_kind: sanitized error taxonomy only
The bridge does not use client IPs, raw paths, tokens, auth keys, or request headers as metric labels.
Chart Integration
The Helm chart can render:
- an internal ClusterIP
Servicefor scraping/metrics - an optional
ServiceMonitorfor Prometheus Operator
See metrics.* in the chart values for the scrape-resource controls.