Continuous profiling is now GA

Continuous profiling in Dash0

Find the code behind resource consumption with OpenTelemetry profiles. Filter by workload, compare profiles, and investigate CPU time, memory allocations, and other measurements.

Resource charts show which workloads consume resources. Profiles show the code paths behind that consumption.

Dash0 now has a Profiling Explorer for investigating OpenTelemetry profiles. Analyze CPU time, memory allocations, and other measurements in the same explorer. Dash0 supports all OpenTelemetry profile types; the types available in your dataset depend on what your profiler collects and sends.

Dash0 Profiling Explorer showing workload filters, an On-CPU time-series chart, and an aggregate flame graph

From workload to code

Filter profiles by workload attributes, such as Kubernetes namespace, deployment, or pod. Split the chart into series with Sum by to find the workloads contributing most to the selected measurement, then inspect their call stacks.

Choose the view that answers your question:

  • Flame Graph: Find expensive call paths across the selected samples. Reverse the call-stack order to bring leaf functions together across their callers and find the code doing the work directly.
  • Table: Search for a function and compare its Self contribution with its Total, which includes its callees. Values follow the selected profile's units, whether time, bytes, or counts.
  • Flame Chart: Inspect samples along a time axis and group them by attributes to investigate bursts or sustained activity.
  • Sandwich: Follow the sampled callers and callees around a selected frame to understand which operations lead into it and where it delegates work.

Compare profiles and focus on the difference

Choose A Baseline and B Comparison to compare datapoints over time or different workloads. A differential flame graph shows which call paths contribute less or more in B: green for less, red for more.

Separate baseline and comparison On-CPU charts above a differential flame graph with green and red frames

Use stack filters to keep relevant call paths, or frame filters to hide individual frames, such as runtime internals. These filters change the code view, not the stored profiles.

Compare the same profile type and units, and account for differences in traffic and workload scope before treating a change as a regression or an improvement.

Bring your OpenTelemetry profiles

On Kubernetes, the Dash0 Operator profiling integration can deploy an opt-in managed profiler or forward profiles from a separately deployed profiler. Profile collection must be enabled separately from tracing and metrics instrumentation.

Open Telemetry → Profiling, choose a dataset containing profiles, and select a time range and Profile type to start investigating.

Learn more about continuous profiling in Dash0.