Skip to content

Collector modes

OTEL_GPU_COLLECTOR_MODE applies defaults for optional feature flags. Any explicitly set OTEL_GPU_* / OTEL_HOST_* / related env var always wins over the preset.

Default: all (when unset or empty).

Invalid values warn at startup and fall back to all.

lightservingtrainingdeepall

ModeIntent
lightBasic accelerator + host health
servingInference hosting (kernels, process share, DCGM SM/pipe)
trainingMulti-GPU / fabric / CPU-memory bandwidth
deepSame continuous as training, plus on-demand profiling tools
allSuperset of deep + platform extras (RDC, TPU, KVM, interrupts)

Naming tip: all means everything enabled. deep means deep-dive profiling (Kineto / Intel PT / high-res), not the kitchen sink.

Y = mode turns the feature on when the env is unset. Soft-fail at runtime if libraries or hardware are missing.

Featurelightservingtrainingdeepall
Core NVML/amdsmi scrape + host system.* + interconnectYYYYY
eBPF (Linux) + process cmdline / workload classifyYYYY
DCGM enabled + PreferYYYY
RDC (AMD)Y
NIC + RDMAYYY
PMU + instructions,cycles,memory_bandwidthYYY
TPU scrapeY
KVM + interruptsY
Control API (default 127.0.0.1:1919 if unset)YY
Kineto listenerYY
Intel PT armedYY
CPU high-res ringYY
Terminal window
# Full capability (default)
export OTEL_GPU_COLLECTOR_MODE=all
# Inference hosts
export OTEL_GPU_COLLECTOR_MODE=serving
# Smaller footprint (pre-mode optional-off behavior)
export OTEL_GPU_COLLECTOR_MODE=light
# Override a single flag on top of a mode
export OTEL_GPU_COLLECTOR_MODE=serving
export OTEL_HOST_NIC_ENABLED=true
KindWhen it costs
Continuous scrapesEvery collection interval (NVML, eBPF, DCGM, NIC, PMU, …)
Armed on-demandIdle until RPC — Kineto unix socket, control HTTP, Intel PT, high-res ring
Active profileCUPTI / perf only while a POST /v1/profile/* runs (DCGM pauses during Kineto duration capture)
  • Linux (amd64/arm64) is the production target for eBPF, DCGM Prefer, NIC/PMU, Kineto, Intel PT, and deep/all extras.
  • Environment soft-skip: missing libraries (libdcgm, librdc), capabilities (CAP_BPF / CAP_PERFMON), non-Linux platforms, and absent hardware are logged as feature unavailable and skipped — the process stays up.
  • Collector faults are fatal: OpenTelemetry instrument-registration errors, control-plane misconfiguration (bad bind addr / remote without token), and a broken embedded BPF object stop startup with feature fault. These cannot be silenced.
  • Startup logs the mode feature summary (requested), effective feature availability (what started), plus unavailable and faults lists.
  • Prefer DCGM only when libdcgm is available; otherwise Prefer is inactive and NVML keeps overlapping series.
  • For inference fleets that want a smaller continuous footprint, use serving (or light for scrape-only). Use training/deep when host caps and libraries match.

Previously most optional features defaulted off. Default all now enables more continuous scrapes and arms on-demand listeners. For a smaller footprint:

Terminal window
export OTEL_GPU_COLLECTOR_MODE=light
# or serving / training, or pin individual OTEL_GPU_* / OTEL_HOST_* flags

Hosting checklist: collector vs Kineto vs SDK

Section titled “Hosting checklist: collector vs Kineto vs SDK”
NeedContinuous collectorOn-demand Kineto (deep / all)Needs SDK / serving instrumentation
ECC, temps, power, clocks, PCIeYes
NVLink / RDMAYes (mode-dependent)
Multi-workload VRAM / util shareprocess.gpu.*Per-PID artifactsRequest/tenant inside one process
Kernel launches / splits (non-graph)eBPF + gpu.kernel.durationTimeline deep-dive
CUDA graph breaksComposite cudaGraphLaunch/cuGraphLaunch span + gpu.graph.launch.calls (replays, not per-node kernels)Strong timelineOptional framework break reasons
Input / tensor shapesNoYes (record_shapes)Continuous request-level shapes
FLOPs / stacks / modules / memory snapshotNoYes (profile flags)Continuous budgets
Dynamic batching queue wait vs execNoWeak / incidentalYes (vLLM / Triton / SGLang)
Padding vs varlen / seqlenNoShapes onlyYes
torch.compile recompilesIndirect util correlationOnly if profiling during compileYes

Join keys today: process.pid, hw.id, time, process.workload.*. W3C trace_id on GPU series is future SDK correlation work.

See Configuration and Metrics.