Skip to content

feat(service): add optional read-only health probes - #125

Merged
karya0 merged 5 commits into
ai-dynamo:mainfrom
aranadive:startup-health
Oct 27, 2026
Merged

karya0 merged 5 commits into
ai-dynamo:mainfrom
aranadive:startup-health

Conversation

@aranadive

@aranadive aranadive commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add optional, read-only HTTP health probes to the KVCR service so deployments can gate startup and detect failures without claiming pools or changing leases.

Behavior

  • --health-port enables /live and /ready before pool allocation. During allocation, /live returns 200 and /ready returns 503; known failures and shutdown fail both.
  • --health-host controls the listener address; --health-timeout-seconds sets the progress deadline.
  • --health-dependency-url optionally requires a companion HTTP endpoint to return 200 for /ready only.
  • Readiness covers all configured Guards. Background NIXL registration does not block readiness. Promotion immediately fails /ready, not /live; stalled Guard progress also affects only readiness.

The probes do not require an attached engine or establish inference readiness. Deployments must coordinate service/pool replacement with affected engines; restarting only the Guard sidecar is unsafe.

Companion deployment: ai-dynamo/dynamo#17290.

Observe Unix accept-loop and Guard actor progress without claiming pools. Add an optional HTTP companion check, shutdown cleanup, CLI validation and focused tests.

Signed-off-by: Adit Ranadive <aranadive@nvidia.com>
Return 503 for HTTP protocol errors and malformed dependency ports. Extend the existing dependency test with a malformed status line and reuse the service CLI argument helper.

Signed-off-by: Adit Ranadive <aranadive@nvidia.com>
Reject malformed dependency URL syntax, missing hosts, and invalid ports during argument parsing before pool allocation. Extend the existing invalid-options table with an invalid IPv6 URL.

Signed-off-by: Adit Ranadive <aranadive@nvidia.com>
Expose health probes before pool allocation. Keep promotion waits and companion dependencies readiness-only, while reporting startup and shutdown explicitly.

Cover the CLI lifecycle with functional tests and reuse promotion coverage for lease preservation.

Signed-off-by: Adit Ranadive <aranadive@nvidia.com>
@aranadive
aranadive requested a review from karya0 October 27, 2026 02:46

@karya0 karya0 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Return 503 for URL encoding and redirect parsing failures. Extend the existing HTTP test and clarify that readiness aggregates all Guards.

Signed-off-by: Adit Ranadive <aranadive@nvidia.com>
@karya0
karya0 merged commit d46d37d into ai-dynamo:main Oct 27, 2026
6 checks passed
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.

2 participants