Skip to content

fix(trtllm): export KV event hosts for MPI endpoints - #402

Merged
ishandhanani merged 1 commit into
NVIDIA:mainfrom
GuanLuo:gluo/export-trtllm-kv-event-hosts
Sep 10, 2026
Merged

ishandhanani merged 1 commit into
NVIDIA:mainfrom
GuanLuo:gluo/export-trtllm-kv-event-hosts

Conversation

@GuanLuo

@GuanLuo GuanLuo commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • export DYN_TRTLLM_KV_EVENT_HOSTS from the endpoint node list for multi-node TRT-LLM endpoints that enable native KV-event publishing
  • preserve an explicit recipe value
  • add coverage for generated and overridden values

Why

Dynamo native TRT-LLM KV-event subscribers require either DYN_TRTLLM_KV_EVENT_HOSTS or SLURM_STEP_NODELIST. The latter was absent in the Dynamo process in a Pyxis container launch, so multi-node workers could not start their direct subscribers.

Validation

  • uv run pytest tests/test_slurm.py -q
  • uv run ruff check src/srtctl/cli/mixins/worker_stage.py tests/test_slurm.py

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@f098b84). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #402   +/-   ##
=======================================
  Coverage        ?   73.49%           
=======================================
  Files           ?      101           
  Lines           ?    14053           
  Branches        ?        0           
=======================================
  Hits            ?    10328           
  Misses          ?     3725           
  Partials        ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ishandhanani
ishandhanani merged commit d0529aa into NVIDIA:main Sep 10, 2026
6 checks passed
ishandhanani added a commit that referenced this pull request Sep 13, 2026
Nine conflicting files, resolved by hand:

- The process exporter (#413) and the wider node-exporter collector set (#415)
  arrive as tachometer-stage exporter launches; on this branch the exporters
  are services. process-exporter is now a service kind (`type:
  process-exporter`, implied while tachometer runs, `placement.node: all`),
  host-native from the `configs/process-exporter` binary `make setup`
  installs (no container, no mounts), skipped with a warning when the binary
  is missing, container launch when a recipe declares a `container`. The
  group file is written by the kind's `prepare` hook; `ServiceKind` gains
  `host_native`, `prepare`, and `skip_reason`. node-exporter's built command
  carries the stat/vmstat/pressure/meminfo_numa/processes collectors and the
  widened vmstat field filter. The templates, the group YAML, and the host
  binary resolver move to `srtctl.services.exporters`; their tests follow.
- Load-window tachometer (#359): start/stop inside run_benchmark is kept;
  `stop_tachometer` now terminates through `ManagedProcess.terminate`, which
  signals the Slurm step (SIGTERM to the srun client would abort the step and
  SIGKILL the scraper). The scraper's `terminate_timeout` is the recipe's
  `shutdown_grace_secs`; the 90 s module constant is gone.
- Ingest timestamp fallback (#414) is taken from main wholesale (it also
  offers `--start-ns`); this branch's own fallback is dropped, its dedup
  module and docstring edits re-applied.
- CPU power telemetry (#410, #422): taken as is (power is frozen); the
  energy report runs before the S3 upload, which returns the URL only.
- Makefile: the `examples`/`golden-check` targets plus the cpu-power targets;
  the `recipes/`-based runner targets stay deleted. SUMMARY: both new pages,
  `analyzing.md` stays deleted. submit.py: the direct-host renderer import
  stays deleted; the arch helpers the cpu-power preflight uses are kept.
  telemetry.py: IPv6-safe host and the SGLang gateway metrics port together.

2355 tests on Python 3.10 and 3.13, lint, schema docs, 21 examples validated,
golden 574 identical / 0 mismatched.
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.

3 participants