Skip to content

[prometheus-statsd-exporter] fix default liveness/readiness probe path (/health returns 404)#6982

Open
yuval-s-wiz wants to merge 1 commit into
prometheus-community:mainfrom
yuval-s-wiz:fix-statsd-exporter-health-probe
Open

[prometheus-statsd-exporter] fix default liveness/readiness probe path (/health returns 404)#6982
yuval-s-wiz wants to merge 1 commit into
prometheus-community:mainfrom
yuval-s-wiz:fix-statsd-exporter-health-probe

Conversation

@yuval-s-wiz

Copy link
Copy Markdown

What

The chart's default livenessProbe/readinessProbe use httpGet.path: /health, but statsd_exporter returns HTTP 404 on /health. With the chart's default values the pod fails its probes — readiness never goes Ready, and liveness restarts the container.

Reproduce

$ curl -so /dev/null -w '%{http_code}\n' http://<exporter>:9102/health     # 404
$ curl -so /dev/null -w '%{http_code}\n' http://<exporter>:9102/-/healthy   # 200
$ curl -so /dev/null -w '%{http_code}\n' http://<exporter>:9102/-/ready     # 200

Root cause

/health was introduced in #2305 on the assumption that the server exposes it. It doesn't have a dedicated /health route — statsd_exporter serves /-/healthy and /-/ready (added in prometheus/statsd_exporter#339).

/health returned 200 only incidentally up to statsd_exporter v0.22, whose / handler was a catch-all that returned 200 for any path. In v0.24.0 (2023-06-02) the exporter adopted exporter-toolkit's web.NewLandingPage, which 404s any path != "/" — silently breaking this probe for every statsd_exporter >= v0.24, including this chart's appVersion: v0.28.0 and the upstream prom/statsd-exporter image.

Fix

Point both probes at /-/healthy — the canonical lightweight health endpoint. This also satisfies the original intent of #2305 (avoid probing the heavy /metrics endpoint). Chart version bumped 1.0.01.0.1.

…> /-/healthy)

statsd_exporter serves /-/healthy and /-/ready, not /health, so the chart's
default liveness/readiness probe (/health) returns HTTP 404 and pods fail
their probes with default values (readiness never Ready; liveness restarts).

This affects statsd_exporter >= v0.24.0, including this chart's appVersion
(v0.28.0) and the upstream prom/statsd-exporter image. /health worked only
incidentally up to v0.22, whose "/" handler was a catch-all returning 200 for
any path; v0.24.0 (2023-06) adopted exporter-toolkit's landing page, which
404s any path != "/", silently breaking the probe.

Point both probes at /-/healthy, the canonical lightweight endpoint, which
also satisfies the original intent of prometheus-community#2305 (avoid probing heavy /metrics).

Signed-off-by: yuval-s-wiz <252454512+yuval-s-wiz@users.noreply.github.com>
@yuval-s-wiz yuval-s-wiz requested a review from scDisorder as a code owner June 10, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant