Last updated:
About Profiling
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.
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
| View | Use it to |
|---|---|
| Flame Graph | Find expensive call paths across the selected samples, or reverse the call-stack order to start at the leaves. |
| Table | Inspect Self and Total contributions in the selected profile's units and search for a function by name. |
| Flame Chart | Examine when samples occur and how activity is distributed across sample groups. |
| Sandwich | Inspect 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
- Explore profiles and select a profile type.
- Filter and group profiles to select a workload.
- Inspect the flame graph or function table to find hot code paths.
- Compare two selections of the same profile type to investigate what changed.
Further Reading
- Key Concepts — Interpret profile types, units, samples, and call stacks.
- Explore Profiles — Navigate the chart and choose a visualization.
- Filter and Group Profiles — Separate workload selection from code-level filtering.
- Analyze Flame Graphs — Read call paths and focus on leaf functions.
- Compare Profiles — Investigate differences between two profile selections.
- Symbolize Profiles — Provide debuginfo so compiled code shows function names.
