Continuous CPU profiling: flame graphs, always on
The Profiling screen is live: cluster-wide CPU flame graphs, sampled by
eBPF with zero app changes and stored in the same ClickHouse as your traces,
logs and metrics. Experimental and opt-in for v0.1
(sensor.profiler.enabled=true) — the upstream alpha loader does not support
every kernel yet.
- Cluster-wide sampling. The sensor's profiler container (OpenTelemetry
eBPF profiler, version-pinned) samples every process on every node at
~20 Hz — tune with
sensor.profiler.samplesPerSecond. - Per-service flame graphs. Pick a profiled service, read its aggregated icicle for the selected window, click any frame to zoom into that subtree.
- Efficient storage. Stacks are deduplicated (stored once, referenced by
hash) with a dedicated retention knob (
retention.profiles, default 3 days). The alpha OTLP Profiles format is isolated behind a single adapter seam in the hub, so upstream evolution stays contained.