Menu
Grafana Cloud

Service profiles

The service Profiles tab integrates Pyroscope’s continuous profiling dashboards for symbol analysis and flamegraphs into Application Observability.

Application Observability performance profiles

Filtering by profile type

The profiles dashboards can be filtered by various profile types:

  • cpu:
    • cpu: the CPU time spent executing a function
    • samples: the number of times the function was sampled
  • memory:
    • alloc_objects: the number objects allocated but not yet released
    • alloc_space: the amount of memory allocated but not yet released
    • inuse_objects: the number of objects allocated and in use
    • inuse_space: the amount of memory allocated and in use
  • block:
    • block-contentions: the number of times goroutines were off-CPU waiting for a resource
    • delay: the amount of CPU time goroutines were off-CPU waiting for a resource
  • mutex:
    • contentions: the number of times goroutines were off-CPU waiting for a lock
  • goroutine: the number of running goroutines (includes goroutines blocked and waiting)

Refer to the Understand profiling types and their uses in Pyroscope documentation to learn more about filtering data with profiles.

Symbol table

The symbol table highlights symbols and their usage. Click a symbol name or the search icon to highlight it in the full flame graph.

Click the sandwich view icon to divide the flamegraph into callers and the callees. The callers are all the functions which had to be called in order for the selected function to be called. The callees are all the functions which were called as a result of the selected function being called.

Flame graph

There are two modes the flamegraph can be in. By default, the flamegraph is in the collapsed mode which combines similar frames together to form one frame which reduces the depth of the flamegraph by not showing a tall stack of similarly wide frames.

Application Observability performance profiles flamegraph collapsed

The second uncollapsed mode does not combine similar frames together. This mode can be viewed in collapsed mode, click the root frame labeled total and Expand all group from the context menu.

Application Observability performance profiles flamegraph uncollapsed

Refer to the Flamegraphs: Visualizing performance data documentation to learn more about visualizing data with flamegraphs.

Use cases

The profiles dashboards automatically filters the flamegraph by service_name and namespace which provides the most value with the least amount data needed to be parsed.

You can filter the flamegraph further on custom labels. For example, filter the flamegraph on a custom applied label for multi-region deployment:

json
{service_name="my_service", namespace="my_namespace", region="us-central"}

Refer to the Profiling fundamentals and When to use continuous profiling documentation for further high-level use cases.