Skip to content

[None][feat] Add VisualGen P0/P1 usage telemetry - #19734

Draft
Mgluhovskoi wants to merge 8 commits into
NVIDIA:feat/visualgen-telemetryfrom
Mgluhovskoi:feat/visualgen-telemetry-main
Draft

Mgluhovskoi wants to merge 8 commits into
NVIDIA:feat/visualgen-telemetryfrom
Mgluhovskoi:feat/visualgen-telemetry-main

Conversation

@Mgluhovskoi

@Mgluhovskoi Mgluhovskoi commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add VisualGen usage telemetry with the P0 field inventory and most P1 fields, reusing TRT-LLM's reporter, opt-outs, lifecycle tracking, and terminal delivery.

This PR targets NVIDIA/TensorRT-LLM:feat/visualgen-telemetry and replaces the fork-only draft Mgluhovskoi/TensorRT-LLM#1. It builds on the initial work in #18679. The target branch was fast-forwarded to main at 7d391a06d7fbcc1e577072b5260568597e15c237 on October 25, 2026, and this PR merges that same revision. Its diff against the target remains scoped to VisualGen telemetry.

Retain draft status for code review and end-to-end validation. Schema and dashboard rollout dependencies remain separate from this change of PR target.

Field coverage

Priority Included
P0 configuration Runtime/ingress, allowlisted model and pipeline identities, modality, launch/node/worker counts, existing system/GPU fields, parallelism, transformer weight quantization, attention/cache backends, coarse sparsity buckets, compile/CUDA graph settings, and reviewed feature booleans.
P0 usage Initial report, periodic heartbeats, terminal snapshot, four allowlisted generation endpoint counts, modality counts, resolved resolution/frame histograms, and peak queued/active requests.
P1 configuration Component-presence flags, transformer count, checkpoint format, quantized-attention recipe, and pipeline load/warmup durations.
P1 usage Step/batch/reference-kind histograms, approved extra-parameter key usage, approximate generation/phase p50 and p95, broad error/timeout counts, initialization counters, session duration, and heartbeat sequence.

tensorrt_llm/usage/schemas/README.md documents exact wire names, buckets, aggregation semantics, and limitations.

Privacy and compatibility

  • Reuse existing opt-outs, CI suppression, process session UUID, product client ID, system/GPU collection, and terminal delivery machinery.
  • Emit explicit reviewed fields, not a generic VisualGenArgs dump. No VisualGen architecture hash is added.
  • Unknown model/pipeline identities become other; enums and histogram keys are fixed. Do not send prompts, reference media, generated outputs, paths, arbitrary extra-parameter keys/values, exception text, or request identifiers.
  • Aggregate in process with bounded counters and fixed-size timing histograms. There are no per-request telemetry events. Consumers must use the latest cumulative snapshot per session rather than sum successive heartbeats.
  • Preserve LLM initial/heartbeat fields. Schema 0.8 adds VisualGen events and additive runtime/VisualGen summary fields to the shared terminal event.
  • Preserve current main's unlimited heartbeats at a default 600-second interval, with sequence numbers saturating at uint32 max. Both runtimes share the loop and independent terminal sender; tests cover long sessions, blocked sends, transient failures, and late opt-out.
  • Preserve main's LLM startup-failure context capture, configuration model-list capture policy, public runtime architecture reporting, and removal of obsolete TensorRT compatibility paths.
  • Telemetry failures must not interrupt generation; only the coordinator emits reports.

Explicit limits

  • failedComponent is none or unclassified; component-level loader failure attribution remains incomplete.
  • extraParamsKeysUsed currently allows only the explicitly reviewed stg_scale name. Additional names require review.
  • Preserve the existing one-reporter-per-process contract: the first successful runtime determines initial/heartbeat type and static configuration. In an LLM-first mixed process, VisualGen summaries appear on the terminal report, not LLM heartbeats. Multiple VisualGen objects share cumulative summaries and the first pipeline's static configuration; queue peaks are maxima observed per executor, not sums across executors.
  • P2 fields are not included.

October 25 compatibility updates

  • Merge current main without rewriting PR history; fast-forward the feature target to the same main revision.
  • Honor VisualGen YAML opt-out before sleep-mode validation, retaining explicit CLI telemetry precedence.
  • Read resolved per-transformer quantization settings, including independently quantized secondary transformers and mixed algorithms.
  • Regenerate serving JSON Schemas and the telemetry reference from current models/manifests. Schema regeneration also picks up main's branch-snapshot configuration relocation and deprecated alias.
  • Do not add optional new tp_layout or smooth_v telemetry fields in this update.

Validation and rollout

  • 409 passed, 3 skipped in the isolated telemetry unit suite. The three skips are live staging tests. CLI and end-to-end test files are excluded from this count.
  • 97 passed in the serving JSON Schema suite, including snapshot freshness and VisualGen telemetry configuration validation.
  • 26 additional isolated regression checks passed using the actual edited Python functions and actual configuration models. These cover per-transformer quantization, CLI opt-out/explicit opt-in during validation errors, and existing executor error/timeout accounting. This temporary AST-based harness does not exercise full runtime imports.
  • Used the local 1.4.0rc0.dev202610050000 container with networking disabled, mounted test dependencies, and temporary package bootstraps. No environment workaround is committed.
  • Full CLI tests remain blocked before execution by incompatible native bindings: current main requires kv_cache_manager_v2.DEFAULT_COLD_TIER_OFFLOAD_MIN_PRIORITY, which that container does not provide. Full CLI, VisualGen lifecycle, and end-to-end tests still need a matching build/CI environment.
  • Repository pre-commit checks on updated files and git diff --check pass. Telemetry-reference regeneration is idempotent. Regenerated the golden manifest; its only difference from the updated target is the visual_gen_class usage-context value.
  • Real-model/GPU inference and staging ingestion have not been validated. Passing these unit tests is not a production rollout approval.
  • Publish/validate schema 0.8 before enabling these events. The existing telemetry webpage does not yet recognize the new VisualGen event names and metrics; its parser/cache/UI integration is a separate rollout dependency.

Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
@Mgluhovskoi
Mgluhovskoi force-pushed the feat/visualgen-telemetry-main branch from 7f5f021 to db3055a Compare October 2, 2026 00:35
@Mgluhovskoi
Mgluhovskoi changed the base branch from main to feat/visualgen-telemetry October 2, 2026 00:36
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>
…isclosure

Signed-off-by: Maxim Gluhovskoi <mgluhovskoi@nvidia.com>

This branch has not been deployed

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

Labels

api-compatible Accepted LLM API contract change that is backwards-compatible VisualGen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant