Skip to content
This repository was archived by the owner on Aug 3, 2026. It is now read-only.
This repository was archived by the owner on Aug 3, 2026. It is now read-only.

Document and standardise HTTP health endpoint paths across all DFE binaries #38

Description

@kazmosahebi

Issue

The rustlib HTTP server serves /readyz, /healthz, and /metrics, but
downstream consumers (dfe-docker compose, K8s manifests) often probe
/health/ready -- which may or may not exist depending on each binary's
HTTP wiring.

In dfe-docker, the compose healthchecks for dfe-receiver, dfe-fetcher,
dfe-archiver, dfe-loader, dfe-transform-vector, dfe-transform-vrl
all use /health/ready. None of those are guaranteed by rustlib; they
happen to work or not work per binary depending on what extra routes
that binary installed on top of the rustlib defaults.

This is partly a documentation gap (the canonical endpoint paths are not
prominently documented) and partly a consistency gap (some binaries may
expose legacy /health/ready aliases, others may not).

Proposed solution

  • Document the canonical rustlib HTTP endpoints in the rustlib README
    and STATE.md:
    • /healthz -- liveness
    • /readyz -- readiness
    • /startupz -- startup (if implemented)
    • /metrics -- Prometheus scrape
  • Confirm every DFE binary built on rustlib exposes the same set with
    no aliases. Add a CI check (smoke test against the built image)
    that hits each endpoint and asserts 200/503 as expected.
  • Either drop any legacy /health/ready route, or document it as a
    permanent alias of /readyz and add a corresponding smoke test.
  • Once the rustlib side is settled, dfe-docker compose can switch
    every healthcheck to /readyz in one PR.

Additional info

This blocks a clean healthcheck rewrite in dfe-docker. The compose
files currently all point at /health/ready and nobody has audited
whether each binary actually serves it. Need the canonical answer
from rustlib before doing the dfe-docker fix.

Observed: rustlib 2.7.1 + DFE 2.2 components.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions