Skip to content

feat!: serve health on the main port; metrics port becomes fully optional - #52

Merged
onedr0p merged 1 commit into
mainfrom
feat/port-standard
Jul 4, 2026
Merged

onedr0p merged 1 commit into
mainfrom
feat/port-standard

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Rollout PR #2 of the org metrics/health standard (primary-HTTP tier + the /healthz+/readyz pair).

What changed

  • /healthz (liveness) + /readyz (readiness) on the main webhook port (8080). readyz aliases healthz today — the endpoint exists so probes and external configs never change if chaski ever gains a real serving condition. (This also retires the long-standing wart of /readyz appearing in the debug-log path map without being served.)
  • Probes target the http port (liveness+startup → /healthz, readiness → /readyz). New chart test pins that metricsEnabled: false removes the metrics containerPort while probes still resolve.
  • Metrics listener is metrics-only and truly optional — disabling removes the listener, container port, Service port, and ServiceMonitor. This supersedes the interim fix(server): always serve /healthz on the monitoring port; record panicked requests #38 shape (always-on monitoring listener serving health): health now rides the always-present main port, so there's no orphan 8081 when metrics are off.
  • helm test hook now checks /readyz on the Service http port instead of metricsPort/healthz.
  • CHASKI_METRICS_PORT stays a port int bound ":<port>" (already dual-stack safe).

Compatibility

  • In-chart consumers (probes, ServiceMonitor) updated automatically.
  • External probe/scrape configs pointing at :8081/healthz must move to the http port — hence feat!.

go test -race green, lint 0 issues, helm lint + helm unittest (20/20) green, docs/schema regenerated, helm template --set config.metricsEnabled=false renders no metrics port and http-targeted probes.

Prior PR in the rollout: home-operations/echo#28. Next: kromgo, konflate, then tuppr/litellm-operator/miroir, then drm-exporter.

…onal

Adopt the org port standard for primary-HTTP apps: /healthz (liveness) and
/readyz (readiness, an alias today) live on the main webhook port (8080) and
the chart's probes target the http port, so the metrics listener (8081) is
metrics-only and truly optional — CHASKI_METRICS_ENABLED=false removes the
listener, container port, Service port, and ServiceMonitor without touching
the probes. The helm test hook now checks /readyz on the Service http port.

BREAKING CHANGE: the metrics listener no longer serves /healthz; external
probe/scrape configs pointing at :8081/healthz must move to the http port
(/healthz or /readyz). In-chart probes and the ServiceMonitor are updated
automatically.
@onedr0p
onedr0p merged commit 0f9a5f5 into main Jul 4, 2026
12 checks passed
@onedr0p
onedr0p deleted the feat/port-standard branch July 4, 2026 15:40
@sticky-gecko sticky-gecko Bot mentioned this pull request Jul 4, 2026
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