Skip to content

feat(health): /healthz + /readyz + gRPC health (land on main)#63

Merged
randomizedcoder merged 2 commits into
mainfrom
feat/listener-ip-ttl
Jul 9, 2026
Merged

feat(health): /healthz + /readyz + gRPC health (land on main)#63
randomizedcoder merged 2 commits into
mainfrom
feat/listener-ip-ttl

Conversation

@randomizedcoder

Copy link
Copy Markdown
Owner

Re-targets the health/readiness work onto main.

#62 was merged into its stacked base branch (feat/listener-ip-ttl) rather than main, so main currently has #61 (listener TTL) but is missing the pkg/health work from #62. This PR brings that delta to main.

Contents = the #62 feature (already reviewed there):

  • HTTP /healthz (liveness) + /readyz (readiness, backed by the daemon's DestinationReady/netlinker gate) on the metrics listener.
  • grpc.health.v1 service on the gRPC port (SERVING on the same readiness condition).
  • pkg/health + poller setReady wiring; goVendorHash bump for google.golang.org/grpc/health.

The listener-TTL commits are already in main via #61, so the diff here is only the health feature. Verified green before (test-cmd-xtcp2, test-go-flavor-s3parquet, pkg/health unit tests, nix build .#xtcp2-s3parquet).

🤖 Generated with Claude Code

randomizedcoder and others added 2 commits July 8, 2026 22:40
…ploys

Adds first-class liveness/readiness for Docker/Kubernetes deployment.

- pkg/health: process-wide readiness flag + HTTP handlers. /healthz is
  liveness (200 once the server is up); /readyz is readiness (200 only after
  the daemon passes its DestinationReady + netlinkers-up gate, 503 otherwise
  and on shutdown). Registered on the existing metrics listener.
- gRPC: register the standard grpc.health.v1 service on the gRPC port,
  starting NOT_SERVING and flipping to SERVING on the same readiness
  condition (for native k8s gRPC probes).
- The poller flips readiness (x.setReady) once it passes the DestinationReady
  gate — the moment xtcp2 starts polling — and back on return; setReady drives
  both the HTTP flag and the gRPC status from one place.
- Bump goVendorHash for the new google.golang.org/grpc/health import.
- Tests: pkg/health handlers via httptest; docs/observability.md section.

No new flags — the endpoints are always on, on the existing listeners.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(health): /healthz + /readyz + gRPC health for container deploys
@randomizedcoder
randomizedcoder merged commit 40f4d06 into main Jul 9, 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