[DOC] Update Pyroscope data source (#82130)

Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
This commit is contained in:
Kim Nylander 2024-02-12 03:34:36 -05:00 committed by GitHub
parent fcf2543fe3
commit 815e61258c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 174 additions and 95 deletions

View File

@ -0,0 +1,80 @@
---
aliases:
- ../features/datasources/phlare/ # /docs/grafana/<GRAFANA_VERSION>/features/datasources/phlare/
- ../features/datasources/grafana-pyroscope/ # /docs/grafana/<GRAFANA_VERSION>/features/datasources/grafana-pyroscope/
- ../datasources/grafana-pyroscope/ # /docs/grafana/<GRAFANA_VERSION>/datasources/grafana-pyroscope/
description: Horizontally-scalable, highly-available, multi-tenant continuous profiling
aggregation system. OSS profiling solution from Grafana Labs.
keywords:
- grafana
- phlare
- guide
- profiling
- pyroscope
labels:
products:
- cloud
- enterprise
- oss
title: Grafana Pyroscope
weight: 1150
---
# Grafana Pyroscope data source
Grafana Pyroscope is a horizontally scalable, highly available, multi-tenant, OSS, continuous profiling aggregation system. Add it as a data source, and you are ready to query your profiles in [Explore][explore].
To learn more about profiling and Pyroscope, refer to the [Introduction to Pyroscope](/docs/pyroscope/introduction/).
For information on configuring the Pyroscope data source, refer to [Configure the Grafana Pyroscope data source](./configure-pyroscope-data-source).
## Integrate profiles into dashboards
Using the Pyroscope data source, you can integrate profiles into your dashboards.
In this case, the screenshot shows memory profiles alongside panels for logs and metrics to be able to debug out of memory (OOM) errors alongside the associated logs and metrics.
![dashboard](https://grafana.com/static/img/pyroscope/grafana-pyroscope-dashboard-2023-11-30.png)
## Visualize traces and profiles data using Traces to profiles
You can link profile and tracing data using your Pyroscope data source with the Tempo data source.
Combined traces and profiles let you see granular line-level detail when available for a trace span. This allows you pinpoint the exact function that's causing a bottleneck in your application as well as a specific request.
![trace-profiler-view](https://grafana.com/static/img/pyroscope/pyroscope-trace-profiler-view-2023-11-30.png)
For more information, refer to the [Traces to profile section][configure-tempo-data-source] of the Tempo data source documentation.
{{< youtube id="AG8VzfFMLxo" >}}
## Provision the Grafana Pyroscope data source
You can modify the Grafana configuration files to provision the Grafana Pyroscope data source.
To learn more, and to view the available provisioning settings, refer to [provisioning documentation][provisioning-data-sources].
Here is an example configuration:
```yaml
apiVersion: 1
datasources:
- name: Grafana Pyroscope
type: grafana-pyroscope-datasource
url: http://localhost:4040
jsonData:
minStep: '15s'
```
{{% docs/reference %}}
[explore]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/explore"
[explore]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/explore"
[flame-graph]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/panels-visualizations/visualizations/flame-graph"
[flame-graph]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/panels-visualizations/visualizations/flame-graph"
[provisioning-data-sources]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/administration/provisioning#datasources"
[provisioning-data-sources]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/administration/provisioning#datasources"
[configure-tempo-data-source]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/datasources/tempo/configure-tempo-data-source"
[configure-tempo-data-source]: "/docs/grafana-cloud/ -> docs/grafana-cloud/connect-externally-hosted/data-sources/tempo/configure-tempo-data-source"
{{% /docs/reference %}}

View File

@ -1,13 +1,7 @@
---
aliases:
- ../features/datasources/phlare/
- ../features/datasources/grafana-pyroscope/
description: Horizontally-scalable, highly-available, multi-tenant continuous profiling
aggregation system. OSS profiling solution from Grafana Labs.
description: Configure your Pyroscope data source for Grafana.
keywords:
- grafana
- phlare
- guide
- configure
- profiling
- pyroscope
labels:
@ -15,15 +9,12 @@ labels:
- cloud
- enterprise
- oss
title: Grafana Pyroscope
weight: 1150
title: Configure the Grafana Pyroscope data source
menuTitle: Configure Pyroscope
weight: 200
---
# Grafana Pyroscope data source
Grafana Pyroscope is a horizontally scalable, highly available, multi-tenant, OSS, continuous profiling aggregation system. Add it as a data source, and you are ready to query your profiles in [Explore][explore].
## Configure the Grafana Pyroscope data source
# Configure the Grafana Pyroscope data source
To configure basic settings for the data source, complete the following steps:
@ -44,84 +35,6 @@ To configure basic settings for the data source, complete the following steps:
| `Password` | Password for basic authentication. |
| `Minimal step` | Used for queries returning timeseries data. The Pyroscope backend, similar to Prometheus, scrapes profiles at certain intervals. To prevent querying at smaller interval, use Minimal step same or higher than your Pyroscope scrape interval. This prevents returning too many data points to the frontend. |
### Traces to profiles
You can link profile and tracing data using your Pyroscope data source with the Tempo data source.
For more information, refer to the [Traces to profile section][configure-tempo-data-source] of the Tempo data source documentation.
{{< youtube id="AG8VzfFMLxo" >}}
## Querying
You can query your profiling data using the query editor.
### Query editor
The query editor gives you access to a profile type selector, a label selector, and collapsible options.
![Query editor](/media/docs/pyroscope/query-editor/query-editor.png 'Query editor')
To access the query editor:
1. Sign into Grafana or Grafana Cloud.
1. Select your Pyroscope data source.
1. From the menu, choose **Explore**.
1. Select a profile type from the drop-down menu.
{{< figure src="/media/docs/pyroscope/query-editor/select-profile.png" class="docs-image--no-shadow" max-width="450px" caption="Profile selector" >}}
1. Use the labels selector input to filter by labels. Pyroscope uses similar syntax to Prometheus to filter labels.
Refer to [Pyroscope documentation](https://grafana.com/docs/pyroscope/latest/) for available operators and syntax.
While the label selector can be left empty to query all profiles without filtering by labels, the profile type or app must be selected for the query to be valid.
Grafana doesn't show any data if the profile type or app isnt selected when a query runs.
![Labels selector](/media/docs/pyroscope/query-editor/labels-selector.png 'Labels selector')
1. Expand the **Options** section to view **Query Type** and **Group by**.
![Options section](/media/docs/pyroscope/query-editor/options-section.png 'Options section')
1. Select a query type to return the profile data which can be shown in the [Flame Graph][flame-graph], metric data visualized in a graph, or both. You can only select both options in a dashboard, because panels allow only one visualization.
**Group by** allows you to group metric data by a specified label. Without any **Group by** label, metric data is aggregated over all the labels into single time series. You can use multiple labels to group by. Group by has only an effect on the metric data and doesn't change the profile data results.
### Profiles query results
Profiles can be visualized in a flame graph. See the [Flame Graph documentation][flame-graph] to learn about the visualization and its features.
![Flame graph](/media/docs/pyroscope/query-editor/flame-graph.png 'Flame graph')
Pyroscope returns profiles aggregated over a selected time range.
The absolute values in the flame graph grow as the time range gets bigger while keeping the relative values meaningful.
You can zoom in on the time range to get a higher granularity profile up to the point of a single scrape interval.
### Metrics query results
Metrics results represent the aggregated sum value over time of the selected profile type.
![Metrics graph](/media/docs/pyroscope/query-editor/metric-graph.png 'Metrics graph')
This allows you to quickly see any spikes in the value of the scraped profiles and zoom in to a particular time range.
## Provision the Grafana Pyroscope data source
You can modify the Grafana configuration files to provision the Grafana Pyroscope data source. To learn more, and to view the available provisioning settings, see [provisioning documentation][provisioning-data-sources].
Here is an example configuration:
```yaml
apiVersion: 1
datasources:
- name: Grafana Pyroscope
type: grafana-pyroscope-datasource
url: http://localhost:4040
jsonData:
minStep: '15s'
```
{{% docs/reference %}}
[explore]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/explore"
[explore]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/explore"

View File

@ -0,0 +1,82 @@
---
description: Use the query editor to explore your Pyroscope data.
keywords:
- query
- profiling
- pyroscope
labels:
products:
- cloud
- enterprise
- oss
title: Query profile data
menuTitle: Query profile data
weight: 300
---
# Query profile data
The Pyroscope data source query editor gives you access to a profile type selector, a label selector, and collapsible options.
![Query editor](/media/docs/pyroscope/query-editor/query-editor.png 'Query editor')
To access the query editor:
1. Sign into Grafana or Grafana Cloud.
1. Select your Pyroscope data source.
1. From the menu, choose **Explore**.
1. Select a profile type from the drop-down menu.
{{< figure src="/media/docs/pyroscope/query-editor/select-profile.png" class="docs-image--no-shadow" max-width="450px" caption="Profile selector" >}}
1. Use the labels selector input to filter by labels. Pyroscope uses similar syntax to Prometheus to filter labels.
Refer to [Pyroscope documentation](https://grafana.com/docs/pyroscope/latest/) for available operators and syntax.
While the label selector can be left empty to query all profiles without filtering by labels, the profile type or app must be selected for the query to be valid.
Grafana doesn't show any data if the profile type or app isnt selected when a query runs.
![Labels selector](/media/docs/pyroscope/query-editor/labels-selector.png 'Labels selector')
1. Expand the **Options** section to view **Query Type** and **Group by**.
![Options section](/media/docs/pyroscope/query-editor/options-section.png 'Options section')
1. Select a query type to return the profile data. Data is shown in the [Flame Graph][flame-graph], metric data visualized in a graph, or both. You can only select both options in Explore. The panels used on dashboards allow only one visualization.
Using **Group by**, you can group metric data by a specified label.
Without any **Group by** label, metric data aggregates over all the labels into single time series.
You can use multiple labels to group by. Group by only effects the metric data and doesn't change the profile data results.
## Profiles query results
Profiles can be visualized in a flame graph.
Refer to the [Flame Graph documentation][flame-graph] to learn about the visualization and its features.
![Flame graph](/media/docs/pyroscope/query-editor/flame-graph.png 'Flame graph')
Pyroscope returns profiles aggregated over a selected time range.
The absolute values in the flame graph grow as the time range gets bigger while keeping the relative values meaningful.
You can zoom in on the time range to get a higher granularity profile up to the point of a single scrape interval.
## Metrics query results
Metrics results represent the aggregated sum value over time of the selected profile type.
![Metrics graph](/media/docs/pyroscope/query-editor/metric-graph.png 'Metrics graph')
This allows you to quickly see any spikes in the value of the scraped profiles and zoom in to a particular time range.
{{% docs/reference %}}
[explore]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/explore"
[explore]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/explore"
[flame-graph]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/panels-visualizations/visualizations/flame-graph"
[flame-graph]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/panels-visualizations/visualizations/flame-graph"
[provisioning-data-sources]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/administration/provisioning#datasources"
[provisioning-data-sources]: "/docs/grafana-cloud/ -> /docs/grafana/<GRAFANA VERSION>/administration/provisioning#datasources"
[configure-tempo-data-source]: "/docs/grafana/ -> /docs/grafana/<GRAFANA VERSION>/datasources/tempo/configure-tempo-data-source"
[configure-tempo-data-source]: "/docs/grafana-cloud/ -> docs/grafana-cloud/connect-externally-hosted/data-sources/tempo/configure-tempo-data-source"
{{% /docs/reference %}}

View File

@ -25,9 +25,13 @@ When configured, this connection lets you run queries from a trace span into the
There are two ways to configure the trace to profiles feature:
- Use a simplified configuration with default query, or
- Use a basic configuration with default query, or
- Configure a custom query where you can use a template language to interpolate variables from the trace or span.
{{< admonition type="note">}}
Traces to profile requires a Tempo data source with Traces to profiles configured and a Pyroscope data source. This integration supports profile data generated using Go, Ruby, and Java instrumentation SDKs.
{{< /admonition >}}
To use trace to profiles, navigate to **Explore** and query a trace. Each span now links to your queries. Clicking a link runs the query in a split panel. If tags are configured, Grafana dynamically inserts the span attribute values into the query. The query runs over the time range of the (span start time - 60) to (span end time + 60 seconds).
![Selecting a link in the span queries the profile data source](/media/docs/tempo/profiles/tempo-trace-to-profile.png)
@ -40,7 +44,7 @@ Hover over a particular block in the flame graph to see more details about the r
## Use a basic configuration
To use a simple configuration, follow these steps:
To use a basic configuration, follow these steps:
1. Select a Pyroscope data source from the **Data source** drop-down.
1. Optional: Choose any tags to use in the query. If left blank, the default values of `service.name` and `service.namespace` are used.