Continuous profiling is now GA

Last updated:

About Profiling

Find costly code paths and compare OpenTelemetry profiles in the Profiling Explorer.

Profiling is a telemetry signal in Dash0 that links resource consumption and other measurements to call stacks. The Profiling Explorer supports all OpenTelemetry profile types, with time-series charts and code views.

Open Profiling under Telemetry to start with All profiles.

Profiling Explorer with profile filters, the CPU cores chart, and a flame graph

Before you begin

Your dataset must contain profiles for the selected time range. Follow Collect and Send Profiles to choose a profiler or import existing recordings and configure OTLP ingestion. On Kubernetes, the Dash0 operator can deploy the Parca Agent for you or forward profiles from a separate profiler. See Profiling Security for the privileges eBPF profilers need and the data profiles contain.

Choose a measurement in Profile type. The screenshots use On-CPU profiling. See Key Concepts for the measurement types and units.

Explorer controls

  • Dataset and time picker: Choose a dataset and time range. See Time Picker.
  • Filter profiles...: Narrow the profiles by their attributes, such as a Kubernetes namespace or pod.
  • Profile type: Select the kind of profile to analyze.
  • Sum by: Split the metrics chart into series by profile attributes.
  • Compare: Open separate A Baseline and B Comparison queries and inspect their differences.
  • Chart: Select Metrics to show the metrics chart or None to hide it and give the code visualization more room.

Code visualizations

ViewUse it to
Flame GraphFind expensive call paths across the selected samples, or reverse the call-stack order to start at the leaves.
TableInspect Self and Total contributions in the selected profile's units and search for a function by name.
Flame ChartExamine when samples occur and how activity is distributed across sample groups.
SandwichInspect the callers and callees of a selected frame.

Use Add filter in the visualization toolbar to keep relevant stacks or remove distracting frames. These filters are separate from the profile filters above the chart. See Filter and Group Profiles.

Start an investigation

  1. Explore profiles and select a profile type.
  2. Filter and group profiles to select a workload.
  3. Inspect the flame graph or function table to find hot code paths.
  4. Compare two selections of the same profile type to investigate what changed.

Further Reading