feat(observability): add NVTX tracing and Prometheus metrics - #242
feat(observability): add NVTX tracing and Prometheus metrics#242BruceLoveDecimal wants to merge 1 commit into
Conversation
Signed-off-by: BruceLoveDecimal <liuqihao970610@gmail.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| @@ -111,6 +114,14 @@ def __init__( | |||
| self.reward_adapter = reward_adapter or default_reward_adapter | |||
|
|
|||
| def score(self, inputs: StatelessForwardInputs) -> StatelessForwardResult: | |||
There was a problem hiding this comment.
A better way is to use decorator here. See many hardcoded modifications like this
|
Thanks for helping me review this @nodeeeeee T-T I will resolve conflicts and approve this PR on Tuesday (I need to check whether we need follow up PRs as the codebase has evolved a bit). Also thank you bruce for your beautiful code!! |
Observability: NVTX tracing + Prometheus metrics
Adds a two-layer observability stack for RL-Kernel.
NVTX tracing (micro) — rlk:: ranges around every C++ operator binding plus Python stage ranges (rlk::score, rlk::train_step, …), visible on an Nsight Systems timeline. Opt-in via RL_KERNEL_NVTX=1; off by default (cached branch, no cost).
Prometheus metrics (macro) — a per-process /metrics endpoint exposing token throughput, rollout QPS, stage latencies, backend/fallback state, KV-cache fragmentation, peak memory, and training loss, plus a ready-made Grafana dashboard. prometheus-client is an optional extra; without it every call is a silent no-op.
Notes
Instrumentation is exception-transparent and per-stage (never per-token). Measured overhead +0.9% on an RTX 5090.
Existing StageResult.metrics dicts are unchanged.
Verified on GPU: CUDA extension builds, full suite green (572 passed), nsys shows the rlk:: ranges, live /metrics served.
Closes #72