<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pyroscope data source on Grafana Labs</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/</link><description>Recent content in Pyroscope data source on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v13.1/datasources/pyroscope/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure the Pyroscope data source</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/configure/</link><pubDate>Mon, 24 Aug 2026 19:23:44 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/configure/</guid><content><![CDATA[&lt;h1 id=&#34;configure-the-pyroscope-data-source&#34;&gt;Configure the Pyroscope data source&lt;/h1&gt;
&lt;p&gt;The Pyroscope data source sets how Grafana connects to your Pyroscope backend.&lt;/p&gt;
&lt;p&gt;You can configure the data source using either the data source interface in Grafana or using a configuration file.
This page explains how to set up and enable the data source capabilities using Grafana.&lt;/p&gt;
&lt;p&gt;If you make any changes, select &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt; to preserve those changes.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re using your own installation of Grafana, you can provision the Pyroscope data source using a YAML configuration file.
For more information about provisioning and available configuration options, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/administration/provisioning/#data-sources&#34;&gt;Provisioning Grafana&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;To configure a Pyroscope data source, you need administrator rights to your Grafana instance and a running Pyroscope backend that&amp;rsquo;s receiving profiling data.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re provisioning a Pyroscope data source, then you also need administrative rights on the server hosting your Grafana instance.&lt;/p&gt;
&lt;h2 id=&#34;add-or-modify-a-data-source&#34;&gt;Add or modify a data source&lt;/h2&gt;
&lt;p&gt;You can use these procedures to configure a new Pyroscope data source or to edit an existing one.&lt;/p&gt;
&lt;h3 id=&#34;create-a-new-data-source&#34;&gt;Create a new data source&lt;/h3&gt;
&lt;p&gt;To configure basic settings for the data source, complete the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Connections&lt;/strong&gt; in the main menu.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter &lt;code&gt;Grafana Pyroscope&lt;/code&gt; in the search bar.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Grafana Pyroscope&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Add new data source&lt;/strong&gt; in the top-right corner of the page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &lt;strong&gt;Settings&lt;/strong&gt; tab, complete the &lt;strong&gt;Name&lt;/strong&gt;, &lt;strong&gt;Connection&lt;/strong&gt;, and &lt;strong&gt;Authentication&lt;/strong&gt; sections.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the &lt;strong&gt;Name&lt;/strong&gt; field to specify the name used for the data source in panels, queries, and Explore. Toggle the &lt;strong&gt;Default&lt;/strong&gt; switch for the data source to be pre-selected for new panels.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Connection&lt;/strong&gt;, enter the &lt;strong&gt;URL&lt;/strong&gt; of the Pyroscope instance. For example, &lt;code&gt;https://example.com:4040&lt;/code&gt;. Refer to &lt;a href=&#34;#connection-url&#34;&gt;Connection URL&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Complete the &lt;a href=&#34;#authentication&#34;&gt;&lt;strong&gt;Authentication&lt;/strong&gt; section&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: Use &lt;strong&gt;Additional settings&lt;/strong&gt; to configure other options.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;update-an-existing-data-source&#34;&gt;Update an existing data source&lt;/h3&gt;
&lt;p&gt;To modify an existing Pyroscope data source:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Connections&lt;/strong&gt; in the main menu.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Data sources&lt;/strong&gt; to view a list of configured data sources.&lt;/li&gt;
&lt;li&gt;Select the Pyroscope data source you want to modify.&lt;/li&gt;
&lt;li&gt;Optional: Use &lt;strong&gt;Additional settings&lt;/strong&gt; to configure or modify other options.&lt;/li&gt;
&lt;li&gt;After completing your updates, select &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;connection-url&#34;&gt;Connection URL&lt;/h3&gt;
&lt;p&gt;The data source connection URL should point to a location of a running Pyroscope backend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Grafana Cloud Profiles&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your Grafana Cloud instance automatically includes a fully provisioned data source.&lt;/p&gt;
&lt;p&gt;If you are running a self-managed Grafana instance or need to configure an additional Pyroscope data source pointing to Grafana Cloud Profiles, you can find the Pyroscope URL under the &lt;strong&gt;Manage your stack&lt;/strong&gt; section for your organization.&lt;/p&gt;
&lt;p&gt;To authenticate against Grafana Cloud Profiles, enable &lt;strong&gt;Basic auth&lt;/strong&gt; and enter your numeric instance ID as the username and an access policy token as the password. The token must belong to an access policy that includes the &lt;code&gt;profiles:read&lt;/code&gt; scope and targets the correct stack. For more information, refer to &lt;a href=&#34;/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/access-policies/&#34;&gt;Grafana Cloud access policies&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Self-managed Pyroscope backend&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The connection URL for a self-managed Pyroscope backend depends on how Pyroscope is deployed.
Refer to the steps under 
    &lt;a href=&#34;/docs/pyroscope/latest/deploy-kubernetes/helm/#query-profiles-in-grafana&#34;&gt;Query profiles in Grafana&lt;/a&gt; for more information on how to configure the data source.&lt;/p&gt;
&lt;p&gt;If you plan to use the 
    &lt;a href=&#34;/docs/grafana/v13.1/explore/simplified-exploration/profiles/&#34;&gt;Profiles Drilldown&lt;/a&gt; application and you are running a self-managed Pyroscope backend in microservices mode, the data source connection URL should point to a gateway or proxy that routes requests to the corresponding Pyroscope service.
Refer to the &lt;a href=&#34;https://github.com/grafana/pyroscope/blob/main/operations/pyroscope/helm/pyroscope/templates/ingress.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Helm ingress configuration&lt;/a&gt; for specific routing requirements.&lt;/p&gt;
&lt;h2 id=&#34;authentication&#34;&gt;Authentication&lt;/h2&gt;
&lt;p&gt;Use this section to select an authentication method to access the data source.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Use Transport Layer Security (TLS) for an additional layer of security when working with Pyroscope.
For additional information on setting up TLS encryption with Pyroscope, refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-server/reference-configuration-parameters/&#34;&gt;Pyroscope configuration&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div data-shared=&#34;datasources/datasouce-authentication.md&#34;&gt;
            

&lt;!-- Authentication procedure from shared file --&gt;
&lt;p&gt;To set up authentication:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Select an authentication method from the drop-down list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Basic authentication&lt;/strong&gt;: Authenticates your data source using a username and password&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forward OAuth identity&lt;/strong&gt;: Forwards the OAuth access token and the OIDC ID token, if available, of the user querying to the data source&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No authentication&lt;/strong&gt;: No authentication is required to access the data source&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For &lt;strong&gt;Basic authentication&lt;/strong&gt; only: Enter the &lt;strong&gt;User&lt;/strong&gt; and &lt;strong&gt;Password&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: Complete the &lt;strong&gt;TLS settings&lt;/strong&gt; for additional security methods.&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;TLS Client Authentication&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Toggle on to use client authentication. When enabled, it adds the &lt;strong&gt;Server name&lt;/strong&gt;, &lt;strong&gt;Client cert&lt;/strong&gt;, and &lt;strong&gt;Client key&lt;/strong&gt; fields. The client provides a certificate that is validated by the server to establish the client&amp;rsquo;s trusted identity. The client key encrypts the data between client and server. These details are encrypted and stored in the Grafana database.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Add self-signed certificate&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;Activate this option to use a self-signed TLS certificate. You can add your own Certificate Authority (CA) certificate on top of one generated by the certificate authorities for additional security measure.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Skip TLS certification validation&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;When activated, it bypasses TLS certificate verification. Not recommended, unless absolutely necessary for testing.
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/grafana/data-sources/tempo/tempo-data-source-authentication.png&#34;
  alt=&#34;Authentication section showing the TLS client certificate options&#34; width=&#34;633&#34;
     height=&#34;914&#34;/&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: Add &lt;strong&gt;HTTP Headers&lt;/strong&gt;. You can pass along additional context and metadata data about the request and response. Select &lt;strong&gt;Add header&lt;/strong&gt; to add &lt;strong&gt;Header&lt;/strong&gt; and &lt;strong&gt;Value&lt;/strong&gt; fields.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt; to preserve your changes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

  &lt;/div&gt;

        
&lt;h2 id=&#34;additional-settings&#34;&gt;Additional settings&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Additional settings&lt;/strong&gt; are optional settings that give you more control over your data source. Select the &lt;strong&gt;Additional settings&lt;/strong&gt; section to expand it and configure these options.&lt;/p&gt;
&lt;h3 id=&#34;advanced-http-settings&#34;&gt;Advanced HTTP settings&lt;/h3&gt;
&lt;p&gt;The Grafana Proxy deletes forwarded cookies. Use the &lt;strong&gt;Allowed cookies&lt;/strong&gt; field to specify cookies that should be forwarded to the data source by name.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Timeout&lt;/strong&gt; field sets the HTTP request timeout in seconds.&lt;/p&gt;
&lt;h3 id=&#34;private-data-source-connect&#34;&gt;Private data source connect&lt;/h3&gt;


&lt;div data-shared=&#34;datasources/datasouce-private-ds-connect.md&#34;&gt;
            

&lt;!-- Procedure for using private data source connect section in the data sources --&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This feature is only available in Grafana Cloud.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Use private data source connect (PDC) to connect to and query data within a secure network without opening that network to inbound traffic from Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/&#34;&gt;Private data source connect&lt;/a&gt; for more information on how PDC works and &lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/configure-pdc/#configure-grafana-private-data-source-connect-pdc&#34;&gt;Configure Grafana private data source connect (PDC)&lt;/a&gt; for steps on setting up a PDC connection.&lt;/p&gt;
&lt;p&gt;Use the drop-down list to select a configured private data source. If you make changes, select &lt;strong&gt;Test &amp;amp; save&lt;/strong&gt; to preserve your changes.&lt;/p&gt;
&lt;p&gt;Use &lt;strong&gt;Manage private data source connect&lt;/strong&gt; to configure and manage any private data sources you have configured.&lt;/p&gt;

  &lt;/div&gt;

        
&lt;h3 id=&#34;querying&#34;&gt;Querying&lt;/h3&gt;
&lt;p&gt;Use the &lt;strong&gt;Minimal step&lt;/strong&gt; field to set the minimum step used for metric queries that return time-series data. The default value is 15 seconds.
Enter a value in Grafana duration format using a number and a time unit specifier, such as &lt;code&gt;15s&lt;/code&gt;, &lt;code&gt;1m&lt;/code&gt;, or &lt;code&gt;1h&lt;/code&gt;. Set it to the same value as, or higher than, the scrape interval configured in your Pyroscope database.&lt;/p&gt;
&lt;p&gt;Adjusting this option can help prevent gaps when you zoom in to profiling data.&lt;/p&gt;
&lt;h2 id=&#34;verify-the-connection&#34;&gt;Verify the connection&lt;/h2&gt;
&lt;p&gt;After you configure the data source, select &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt; to verify the connection.
When the connection is successful, Grafana displays a &lt;strong&gt;Data source is working&lt;/strong&gt; message.
If the test fails, Grafana displays the error returned by the Pyroscope backend. For help resolving connection errors, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/troubleshooting/&#34;&gt;Troubleshoot the Pyroscope data source&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;provision-the-data-source&#34;&gt;Provision the data source&lt;/h2&gt;
&lt;p&gt;You can provision the Pyroscope data source using YAML configuration files or Terraform, as part of the Grafana provisioning system.
For more information about provisioning and available configuration options, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/administration/provisioning/#data-sources&#34;&gt;Provisioning Grafana&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;yaml-provisioning-example&#34;&gt;YAML provisioning example&lt;/h3&gt;
&lt;p&gt;The following example provisions a Pyroscope data source:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

datasources:
  - name: Grafana Pyroscope
    type: grafana-pyroscope-datasource
    url: http://localhost:4040
    jsonData:
      minStep: &amp;#39;15s&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To provision with basic authentication, for example when connecting to Grafana Cloud Profiles:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

datasources:
  - name: Grafana Pyroscope
    type: grafana-pyroscope-datasource
    url: https://example.grafana.net
    basicAuth: true
    basicAuthUser: &amp;#39;&amp;lt;INSTANCE_ID&amp;gt;&amp;#39;
    jsonData:
      minStep: &amp;#39;15s&amp;#39;
    secureJsonData:
      basicAuthPassword: &amp;lt;ACCESS_POLICY_TOKEN&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;INSTANCE_ID&amp;gt;&lt;/code&gt;: Your numeric instance ID, found under &lt;strong&gt;Manage your stack&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;ACCESS_POLICY_TOKEN&amp;gt;&lt;/code&gt;: An access policy token with the &lt;code&gt;profiles:read&lt;/code&gt; scope.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;terraform-example&#34;&gt;Terraform example&lt;/h3&gt;
&lt;p&gt;To provision the data source with Terraform, use the &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;grafana_data_source&lt;/code&gt; resource&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;hcl&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-hcl&#34;&gt;resource &amp;#34;grafana_data_source&amp;#34; &amp;#34;pyroscope&amp;#34; {
  type = &amp;#34;grafana-pyroscope-datasource&amp;#34;
  name = &amp;#34;Grafana Pyroscope&amp;#34;
  url  = &amp;#34;http://localhost:4040&amp;#34;

  json_data_encoded = jsonencode({
    minStep = &amp;#34;15s&amp;#34;
  })
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To provision with basic authentication:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;hcl&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-hcl&#34;&gt;resource &amp;#34;grafana_data_source&amp;#34; &amp;#34;pyroscope&amp;#34; {
  type                = &amp;#34;grafana-pyroscope-datasource&amp;#34;
  name                = &amp;#34;Grafana Pyroscope&amp;#34;
  url                 = &amp;#34;http://localhost:4040&amp;#34;
  basic_auth_enabled  = true
  basic_auth_username = &amp;#34;&amp;lt;USERNAME&amp;gt;&amp;#34;

  secure_json_data_encoded = jsonencode({
    basicAuthPassword = &amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;
  })
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;USERNAME&amp;gt;&lt;/code&gt;: Your Pyroscope username.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;PASSWORD&amp;gt;&lt;/code&gt;: Your Pyroscope password.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="configure-the-pyroscope-data-source">Configure the Pyroscope data source&lt;/h1>
&lt;p>The Pyroscope data source sets how Grafana connects to your Pyroscope backend.&lt;/p>
&lt;p>You can configure the data source using either the data source interface in Grafana or using a configuration file.
This page explains how to set up and enable the data source capabilities using Grafana.&lt;/p></description></item><item><title>Configure Trace to profiles</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/configure-traces-to-profiles/</link><pubDate>Mon, 24 Aug 2026 19:23:44 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/configure-traces-to-profiles/</guid><content><![CDATA[&lt;h1 id=&#34;configure-trace-to-profiles&#34;&gt;Configure Trace to profiles&lt;/h1&gt;
&lt;p&gt;Trace to profiles lets you navigate from a trace span directly to the profiling data for that span. You configure it in the Tempo data source, which connects your tracing data in Tempo with your profiling data in Pyroscope.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Your application must be instrumented for profiles and traces. For more information, refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/&#34;&gt;Link traces to profiles&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div data-shared=&#34;datasources/tempo-traces-to-profiles.md&#34;&gt;
            &lt;!-- # Trace to profiles  --&gt;
&lt;p&gt;Using Trace to profiles, you can use the ability to correlate different signals in Grafana by adding the functionality to link between traces and profiles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trace to profiles&lt;/strong&gt; lets you link your Grafana Pyroscope data source to tracing data.
When configured, this connection lets you run queries from a trace span into the profile data using &lt;strong&gt;Explore&lt;/strong&gt;.
Each span 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 &#43; 60 seconds).&lt;/p&gt;
&lt;p&gt;Embedded flame graphs are also inserted into each span details section that has a linked profile.
This lets you see resource consumption in a flame graph visualization for each span without having to navigate away from the current view.&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#39;https://www.youtube.com/embed/AG8VzfFMLxo&#39; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;There are two ways to configure the trace to profiles feature:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a basic configuration with default query, or&lt;/li&gt;
&lt;li&gt;Configure a custom query where you can use a template language to interpolate variables from the trace or span.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/grafana/data-sources/tempo/tempo-data-source-trace-to-profiles.png&#34;
  alt=&#34;Traces to profiles section in the Tempo data source&#34; width=&#34;919&#34;
     height=&#34;224&#34;/&gt;&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;To use Trace to profiles, you need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/grafana-pyroscope/&#34;&gt;Grafana Pyroscope data source&lt;/a&gt; connected to your Pyroscope instance.&lt;/li&gt;
&lt;li&gt;A Tempo data source configured with the Trace to profiles settings described on this page.&lt;/li&gt;
&lt;li&gt;Your application instrumented with all three of the following:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Profiling&lt;/strong&gt;: A Pyroscope SDK or Grafana Alloy sending profiling data to Pyroscope. Refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/&#34;&gt;Configure the client to send profiles&lt;/a&gt; for setup instructions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracing&lt;/strong&gt;: An OpenTelemetry SDK sending trace data to Tempo. Refer to the &lt;a href=&#34;https://opentelemetry.io/docs/getting-started/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry getting started documentation&lt;/a&gt; for setup instructions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Span profiling bridge&lt;/strong&gt;: A language-specific OpenTelemetry integration package that links profiling data with trace spans. Without this package, traces and profiles are independent signals with no connection between them. Refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/&#34;&gt;Link tracing and profiling with span profiles&lt;/a&gt; for per-language setup instructions.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;use-a-basic-configuration&#34;&gt;Use a basic configuration&lt;/h2&gt;
&lt;p&gt;To use a basic configuration, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the left menu, select &lt;strong&gt;Connections&lt;/strong&gt; &amp;gt; &lt;strong&gt;Data sources&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select your configured Tempo data source from the &lt;strong&gt;Data source&lt;/strong&gt; list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scroll down to the &lt;strong&gt;Traces to profiles&lt;/strong&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a Pyroscope data source in the &lt;strong&gt;Data source&lt;/strong&gt; drop-down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: Add one or more tags to use in the query. If left blank, the default values of &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;service.namespace&lt;/code&gt; are used.&lt;/p&gt;
&lt;p&gt;The tags you configure must be present in the spans attributes or resources for a trace-to-profiles span link to appear.&lt;/p&gt;
&lt;p&gt;You can optionally configure a new name for the tag. This is useful if the tag has dots in the name and the target data source doesn&amp;rsquo;t allow dots in labels. In that case, you can remap &lt;code&gt;service.name&lt;/code&gt; to &lt;code&gt;service_name&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select one or more profile types to use in the query. Select the drop-down and choose options from the menu.&lt;/p&gt;
&lt;p&gt;The profile type or app must be selected for the query to be valid. Grafana doesn&amp;rsquo;t show any data if the profile type or app isn&amp;rsquo;t selected when a query runs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Save and Test&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you have configured a Pyroscope data source and no profile data is available or the &lt;strong&gt;Profiles for this span&lt;/strong&gt;
button and the embedded flame graph isn&amp;rsquo;t visible, verify that the &lt;code&gt;pyroscope.profile.id&lt;/code&gt; key-value pair exists in your span tags.&lt;/p&gt;
&lt;h2 id=&#34;configure-custom-query-traces-profiles&#34;&gt;Configure a custom query&lt;/h2&gt;
&lt;p&gt;To use a custom query with the configuration, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the left menu, select &lt;strong&gt;Connections&lt;/strong&gt; &amp;gt; &lt;strong&gt;Data sources&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a configured Tempo data source from the &lt;strong&gt;Data source&lt;/strong&gt; list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scroll down to the &lt;strong&gt;Traces to profiles&lt;/strong&gt; section.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a Pyroscope data source in the &lt;strong&gt;Data source&lt;/strong&gt; drop-down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional: Choose any tags to use in the query. If left blank, the default values of &lt;code&gt;service.name&lt;/code&gt; and &lt;code&gt;service.namespace&lt;/code&gt; are used.&lt;/p&gt;
&lt;p&gt;These tags can be used in the custom query with &lt;code&gt;${__tags}&lt;/code&gt; variable. This variable interpolates the mapped tags as list in an appropriate syntax for the data source. Only tags present in the span are included. Tags that aren&amp;rsquo;t present are omitted.&lt;/p&gt;
&lt;p&gt;You can also configure a name for the tag. Tag names are useful where the tag has dots in the name and the target data source doesn&amp;rsquo;t allow using dots in labels. For example, you can remap &lt;code&gt;service.name&lt;/code&gt; to &lt;code&gt;service_name&lt;/code&gt;. If you don&amp;rsquo;t map any tags here, you can still use any tag in the query, for example: &lt;code&gt;method=&amp;quot;${__span.tags.method}&amp;quot;&lt;/code&gt;. Learn more about 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/tempo/configure-tempo-data-source/#custom-query-variables&#34;&gt;custom query variables&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select one or more profile types to use in the query. Select the drop-down and choose options from the menu.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Switch on &lt;strong&gt;Use custom query&lt;/strong&gt; to enter a custom query.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Specify a custom query to be used to query profile data. You can use various variables to make that query relevant for current span. The link shows only if all the variables are interpolated with non-empty values to prevent creating an invalid query. You can interpolate the configured tags using the &lt;code&gt;$__tags&lt;/code&gt; keyword.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Save and Test&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;configuration-options&#34;&gt;Configuration options&lt;/h2&gt;
&lt;p&gt;The following table describes options for configuring your &lt;strong&gt;Trace to profiles&lt;/strong&gt; settings:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Setting name&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Data source&lt;/td&gt;
              &lt;td&gt;Defines the target data source. You can select a Pyroscope [profiling] data source.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Tags&lt;/td&gt;
              &lt;td&gt;Defines the tags to use in the profile query. Default: &lt;code&gt;cluster&lt;/code&gt;, &lt;code&gt;hostname&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, &lt;code&gt;pod&lt;/code&gt;, &lt;code&gt;service.name&lt;/code&gt;, &lt;code&gt;service.namespace&lt;/code&gt;. You can change the tag name for example to remove dots from the name if they&amp;rsquo;re not allowed in the target data source. For example, map &lt;code&gt;http.status&lt;/code&gt; to &lt;code&gt;http_status&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Profile type&lt;/td&gt;
              &lt;td&gt;Defines the profile type to use in the query.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Use custom query&lt;/td&gt;
              &lt;td&gt;Toggles use of custom query with interpolation.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Query&lt;/td&gt;
              &lt;td&gt;Input to write custom query. Use variable interpolation to customize it with variables from span.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;h2 id=&#34;verify-the-connection&#34;&gt;Verify the connection&lt;/h2&gt;
&lt;p&gt;After you configure the Tempo data source and instrument your application, verify that Trace to profiles works.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open a trace in &lt;strong&gt;Explore&lt;/strong&gt; using your Tempo data source.&lt;/li&gt;
&lt;li&gt;Expand a span to view its details.&lt;/li&gt;
&lt;li&gt;Confirm that the &lt;strong&gt;Profiles for this span&lt;/strong&gt; button appears in the span details.&lt;/li&gt;
&lt;li&gt;Confirm that an embedded flame graph appears in the span details section.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the span attribute &lt;code&gt;pyroscope.profile.id&lt;/code&gt; isn&amp;rsquo;t present on the span, the OpenTelemetry bridge package isn&amp;rsquo;t configured correctly. Refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/&#34;&gt;Link tracing and profiling with span profiles&lt;/a&gt; for per-language setup instructions.&lt;/p&gt;
&lt;h2 id=&#34;troubleshoot-trace-to-profiles&#34;&gt;Troubleshoot trace to profiles&lt;/h2&gt;
&lt;p&gt;Use the following checklist to diagnose common issues with Trace to profiles.&lt;/p&gt;
&lt;h3 id=&#34;no-profiles-for-this-span-button-appears&#34;&gt;No &amp;ldquo;Profiles for this span&amp;rdquo; button appears&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Verify that you installed and configured the OTel bridge package for your language. This is a separate package from the Pyroscope SDK and OpenTelemetry SDK. Refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/&#34;&gt;Link tracing and profiling with span profiles&lt;/a&gt; for per-language instructions.&lt;/li&gt;
&lt;li&gt;Check that the &lt;code&gt;pyroscope.profile.id&lt;/code&gt; attribute exists on the span in Tempo. If it&amp;rsquo;s missing, the bridge package isn&amp;rsquo;t tagging spans correctly.&lt;/li&gt;
&lt;li&gt;Check that the &lt;code&gt;span_name&lt;/code&gt; label exists on the profiling data in Pyroscope. If it&amp;rsquo;s missing, the bridge package isn&amp;rsquo;t labeling profiling samples correctly.&lt;/li&gt;
&lt;li&gt;Verify that the tags you configured in the Tempo data source are present in the span&amp;rsquo;s attributes or resources. If the tags don&amp;rsquo;t match, the span link doesn&amp;rsquo;t appear.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;button-appears-but-no-profile-data-is-shown&#34;&gt;Button appears but no profile data is shown&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;The span might be shorter than the sampling interval of the profiler. Span profiling is most effective on spans longer than 20ms.&lt;/li&gt;
&lt;li&gt;CPU profiling only captures time spent actively executing on the CPU. If the span is mostly waiting on I/O, network calls, or database queries, the CPU profile for that span may be sparse or empty.&lt;/li&gt;
&lt;li&gt;Verify that the profile type selected in the Tempo data source configuration matches the profile type your application sends.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;tags-dont-match&#34;&gt;Tags don&amp;rsquo;t match&lt;/h3&gt;
&lt;p&gt;Tags you configure in the Tempo data source must be present in the span&amp;rsquo;s attributes or resources. If a tag has dots in its name, for example, &lt;code&gt;service.name&lt;/code&gt;, and the Pyroscope data source doesn&amp;rsquo;t allow dots in labels, remap it to a name without dots, for example, &lt;code&gt;service_name&lt;/code&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-trace-to-profiles">Configure Trace to profiles&lt;/h1>
&lt;p>Trace to profiles lets you navigate from a trace span directly to the profiling data for that span. You configure it in the Tempo data source, which connects your tracing data in Tempo with your profiling data in Pyroscope.&lt;/p></description></item><item><title>Query profile data</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/query-editor/</link><pubDate>Mon, 24 Aug 2026 19:23:44 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/query-editor/</guid><content><![CDATA[&lt;h1 id=&#34;query-profile-data&#34;&gt;Query profile data&lt;/h1&gt;
&lt;p&gt;You can query your profile data using the open source Grafana Profiles Drilldown app or the built-in Pyroscope data source query editor.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profiles Drilldown provides a queryless experience for inspecting your profiling data with opinionated workflows to assist your investigation.&lt;/li&gt;
&lt;li&gt;Data source query editor provides complete control over your data exploration and is recommended for experienced users.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, you can embed flame graph panels in Grafana dashboards.
Refer to the 
    &lt;a href=&#34;/docs/grafana/v13.1/panels-visualizations/visualizations/flame-graph/&#34;&gt;Flame graph panel&lt;/a&gt; documentation for details.&lt;/p&gt;
&lt;h2 id=&#34;profiles-drilldown&#34;&gt;Profiles Drilldown&lt;/h2&gt;
&lt;p&gt;
    &lt;a href=&#34;/docs/grafana/v13.1/explore/simplified-exploration/profiles/&#34;&gt;Grafana Profiles Drilldown&lt;/a&gt; is a native Grafana application designed to integrate seamlessly with Pyroscope, the open source continuous profiling platform, providing a smooth, queryless experience for browsing and analyzing profiling data.&lt;/p&gt;
&lt;p&gt;You can use Profiles Drilldown in Grafana Cloud or in your own Grafana instance.
For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/explore/simplified-exploration/profiles/access/&#34;&gt;Access or install Profiles Drilldown&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/explore-profiles/explore-profiles-homescreen-v0.1.17.png&#34;
  alt=&#34;Profiles Drilldown home screen&#34; width=&#34;1227&#34;
     height=&#34;787&#34;/&gt;&lt;/p&gt;
&lt;h3 id=&#34;use-cases&#34;&gt;Use cases&lt;/h3&gt;
&lt;p&gt;There are several different modes for viewing, analyzing, and comparing profiling data.&lt;/p&gt;
&lt;p&gt;The main use cases are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proactive: Cutting costs, addressing latency issues, or optimizing memory usage for applications&lt;/li&gt;
&lt;li&gt;Reactive: Resolving incidents with line-level accuracy or debugging active latency/memory issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Profiles Drilldown provides an intuitive interface to specifically support proactive and reactive use cases.
You get a holistic view of all of your services and how they&amp;rsquo;re functioning, but also the ability to drill down for more targeted root cause analysis.&lt;/p&gt;
&lt;p&gt;Profiles Drilldown offers a convenient platform to analyze profiles and get insights that are impossible to get from using other traditional signals like logs, metrics, or tracing.&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#39;https://www.youtube.com/embed/x9aPw_CbIQc&#39; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;

&lt;Box backgroundColor=&#34;primary&#34; borderColor=&#34;strong&#34; borderStyle=&#34;solid&#34; padding=&#34;2&#34;&gt;
  &lt;Grid columns=&#34;2&#34; gap=&#34;2&#34;&gt;
    &lt;div&gt;
      &lt;h4&gt;Give it a try using Grafana Play&lt;/h4&gt;
      &lt;p&gt;With Grafana Play, you can explore and see how it works, learning from practical examples to accelerate your development.
This feature can be seen on &lt;a href=&#34;https://play.grafana.org/a/grafana-pyroscope-app/profiles-explorer&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;the Grafana Play site&lt;/a&gt;.&lt;/p&gt;
      &lt;div&gt;
        &lt;a class=&#34;btn btn--primary arrow&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; href=&#34;https://play.grafana.org/a/grafana-pyroscope-app/profiles-explorer&#34;&gt;Try it&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div&gt;
      &lt;img src=&#34;/media/docs/icons/docs-play.svg&#34; width=&#34;228&#34; height=&#34;182&#34; alt=&#34;Give it a try using Grafana Play&#34;&gt;
    &lt;/div&gt;
  &lt;/Grid&gt;
&lt;/Box&gt;

&lt;h2 id=&#34;pyroscope-query-editor&#34;&gt;Pyroscope query editor&lt;/h2&gt;
&lt;p&gt;The Pyroscope data source query editor gives you access to a profile type selector, a label selector, and collapsible options.&lt;/p&gt;
&lt;p&gt;Like Profiles Drilldown, the query editor also provides a flame graph to visualize data.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/pyroscope/query-editor/query-editor.png&#34;
  alt=&#34;Query editor&#34; width=&#34;1902&#34;
     height=&#34;278&#34;/&gt;&lt;/p&gt;
&lt;p&gt;To access the query editor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Sign into Grafana or Grafana Cloud.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select your Pyroscope data source.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From the menu, choose &lt;strong&gt;Explore&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a profile type from the drop-down menu.&lt;/p&gt;
&lt;figure
       class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
       style=&#34;max-width: 450px;&#34;
       itemprop=&#34;associatedMedia&#34;
       itemscope=&#34;&#34;
       itemtype=&#34;http://schema.org/ImageObject&#34;
     &gt;&lt;a
           class=&#34;lightbox-link captioned&#34;
           href=&#34;/media/docs/pyroscope/query-editor/select-profile.png&#34;
           itemprop=&#34;contentUrl&#34;
         &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
             class=&#34;lazyload mb-0&#34;
             data-src=&#34;/media/docs/pyroscope/query-editor/select-profile.png&#34;data-srcset=&#34;/media/docs/pyroscope/query-editor/select-profile.png?w=320 320w, /media/docs/pyroscope/query-editor/select-profile.png?w=550 550w, /media/docs/pyroscope/query-editor/select-profile.png?w=750 750w, /media/docs/pyroscope/query-editor/select-profile.png?w=900 900w, /media/docs/pyroscope/query-editor/select-profile.png?w=1040 1040w, /media/docs/pyroscope/query-editor/select-profile.png?w=1240 1240w, /media/docs/pyroscope/query-editor/select-profile.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Profile selector&#34;width=&#34;886&#34;height=&#34;550&#34;title=&#34;Profile selector&#34;/&gt;
           &lt;noscript&gt;
             &lt;img
               src=&#34;/media/docs/pyroscope/query-editor/select-profile.png&#34;
               alt=&#34;Profile selector&#34;width=&#34;886&#34;height=&#34;550&#34;title=&#34;Profile selector&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
           &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Profile selector&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the labels selector input to filter by labels. Pyroscope uses similar syntax to Prometheus to filter labels.
Refer to &lt;a href=&#34;#label-selector-syntax&#34;&gt;Label selector syntax&lt;/a&gt; for available operators and syntax.&lt;/p&gt;
&lt;p&gt;While the label selector can be left empty to query all profiles without filtering by labels, you must select a profile type or app for the query to be valid.&lt;/p&gt;
&lt;p&gt;Grafana doesn&amp;rsquo;t show any data if the profile type or app isn&amp;rsquo;t selected when a query runs.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/pyroscope/query-editor/labels-selector.png&#34;
  alt=&#34;Labels selector&#34; width=&#34;1900&#34;
     height=&#34;282&#34;/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expand the &lt;strong&gt;Options&lt;/strong&gt; section to view the available query options.
&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/pyroscope/query-editor/options-section.png&#34;
  alt=&#34;Options section&#34; width=&#34;1906&#34;
     height=&#34;416&#34;/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;label-selector-syntax&#34;&gt;Label selector syntax&lt;/h3&gt;
&lt;p&gt;The label selector uses a syntax similar to Prometheus. Enclose one or more label matchers in curly braces, separated by commas. Each matcher combines a label name, an operator, and a value in double quotes.&lt;/p&gt;
&lt;p&gt;The label selector supports the following operators.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Operator&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;=&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Selects labels that exactly match the value.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;!=&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Selects labels that don&amp;rsquo;t match the value.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;=~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Selects labels that match the regular expression.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;!~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Selects labels that don&amp;rsquo;t match the regular expression.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The following examples show common label selectors:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=&amp;#34;my-service&amp;#34;}
{service_name=&amp;#34;my-service&amp;#34;, namespace=&amp;#34;production&amp;#34;}
{service_name=~&amp;#34;cart.*&amp;#34;}
{service_name=&amp;#34;checkout&amp;#34;, namespace!=&amp;#34;staging&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Leave the label selector empty, or set it to &lt;code&gt;{}&lt;/code&gt;, to query all profiles for the selected profile type without filtering by labels.&lt;/p&gt;
&lt;h3 id=&#34;query-options&#34;&gt;Query options&lt;/h3&gt;
&lt;p&gt;The &lt;strong&gt;Options&lt;/strong&gt; section provides the following settings.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Option&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Query Type&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Sets the type of data the query returns: &lt;strong&gt;Profile&lt;/strong&gt; for flame graph data, &lt;strong&gt;Metric&lt;/strong&gt; for time-series data, or &lt;strong&gt;Both&lt;/strong&gt;. You can only select &lt;strong&gt;Both&lt;/strong&gt; in Explore. Panels on dashboards allow only one visualization.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Group by&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Groups metric data by one or more labels. Without a &lt;strong&gt;Group by&lt;/strong&gt; label, metric data aggregates over all labels into a single time series. &lt;strong&gt;Group by&lt;/strong&gt; applies only to metric data and doesn&amp;rsquo;t change the profile results.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Limit&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Sets the maximum number of time series returned when &lt;strong&gt;Group by&lt;/strong&gt; is set. The series returned are always ordered by descending value for the total aggregated data over the time period. Doesn&amp;rsquo;t apply to profile queries.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Span ID&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Sets the span ID from which to search for profiles, so you can view the profile associated with a specific trace span. This option supports Trace to profiles, for example, &lt;code&gt;64f170a95f537095&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Max Nodes&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Sets the maximum number of nodes rendered in the flame graph. Lower values improve performance for large profiles by aggregating smaller nodes. The field placeholder shows the default value, &lt;code&gt;16384&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Annotations&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Includes profiling annotations, such as sampling and throttling events, on time-series results. Use these annotations to identify when Pyroscope reduced or limited ingestion for a service.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Select a query type to return the profile data. Data is shown in the 
    &lt;a href=&#34;/docs/grafana/v13.1/panels-visualizations/visualizations/flame-graph/&#34;&gt;Flame Graph&lt;/a&gt;, metric data visualized in a graph, or both.&lt;/p&gt;
&lt;p&gt;Using &lt;strong&gt;Group by&lt;/strong&gt;, you can group metric data by a specified label.
You can use multiple labels to group by.&lt;/p&gt;
&lt;p&gt;In conjunction with &lt;strong&gt;Group by&lt;/strong&gt;, you can set a positive number in the &lt;strong&gt;Limit&lt;/strong&gt; input to limit the maximum number of time series returned by the data source.&lt;/p&gt;
&lt;h4 id=&#34;exemplars&#34;&gt;Exemplars&lt;/h4&gt;
&lt;p&gt;When the &lt;code&gt;profilesExemplars&lt;/code&gt; feature is enabled, an &lt;strong&gt;Exemplars&lt;/strong&gt; toggle appears in the &lt;strong&gt;Options&lt;/strong&gt; section.
Exemplars link individual profile samples to points on a metrics graph, so you can jump from a spike in a time series to the specific profile that produced it.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;profilesExemplars&lt;/code&gt; feature is generally available and enabled by default.&lt;/p&gt;
&lt;h4 id=&#34;heatmap&#34;&gt;Heatmap&lt;/h4&gt;
&lt;p&gt;When the &lt;code&gt;profilesHeatmap&lt;/code&gt; feature is enabled, a &lt;strong&gt;Heatmap&lt;/strong&gt; toggle appears in the &lt;strong&gt;Options&lt;/strong&gt; section.
The heatmap visualizes the distribution of profile samples over time, which helps you spot patterns and outliers across many profiles.&lt;/p&gt;
&lt;p&gt;When you enable &lt;strong&gt;Heatmap&lt;/strong&gt;, use the &lt;strong&gt;Heatmap Type&lt;/strong&gt; option to choose how samples are aggregated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Individual&lt;/strong&gt;: Shows individual profile samples.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Span&lt;/strong&gt;: Aggregates samples by span duration, for use with Trace to profiles.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The &lt;code&gt;profilesHeatmap&lt;/code&gt; feature is experimental. Experimental features are subject to change and may be removed in a future release. Enable it using the &lt;code&gt;profilesHeatmap&lt;/code&gt; feature toggle.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h4 id=&#34;utf-8-label-names&#34;&gt;UTF-8 label names&lt;/h4&gt;
&lt;p&gt;When the &lt;code&gt;pyroscopeUTF8LabelNames&lt;/code&gt; feature is enabled, the label selector supports UTF-8 label names.
Enclose label names that contain characters such as dots in double quotes, for example, &lt;code&gt;{&amp;quot;k8s.namespace&amp;quot;=&amp;quot;production&amp;quot;}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;pyroscopeUTF8LabelNames&lt;/code&gt; feature is in public preview and enabled by default.&lt;/p&gt;
&lt;h3 id=&#34;query-examples&#34;&gt;Query examples&lt;/h3&gt;
&lt;p&gt;The following examples show common ways to build queries in the query editor. Each example lists the profile type to select and the label selector to enter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Investigate high CPU usage for a service:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select the &lt;code&gt;process_cpu:cpu:nanoseconds:cpu:nanoseconds&lt;/code&gt; profile type and filter to the affected service:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=&amp;#34;checkout&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Set &lt;strong&gt;Query Type&lt;/strong&gt; to &lt;strong&gt;Both&lt;/strong&gt; in Explore to view the CPU flame graph alongside a time series of CPU usage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compare memory allocations across environments:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select the &lt;code&gt;memory:alloc_space:bytes:space:bytes&lt;/code&gt; profile type, set &lt;strong&gt;Query Type&lt;/strong&gt; to &lt;strong&gt;Metric&lt;/strong&gt;, and set &lt;strong&gt;Group by&lt;/strong&gt; to &lt;code&gt;namespace&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=&amp;#34;cart&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The metrics graph shows a separate time series for each namespace, which lets you compare allocation behavior between environments such as &lt;code&gt;production&lt;/code&gt; and &lt;code&gt;staging&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analyze goroutine growth:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select the &lt;code&gt;goroutine:goroutine:count:goroutine:count&lt;/code&gt; profile type to inspect the number of goroutines and where they&amp;rsquo;re created:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=~&amp;#34;api.*&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;View the profile for a specific trace span:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Select a profile type, set &lt;strong&gt;Query Type&lt;/strong&gt; to &lt;strong&gt;Profile&lt;/strong&gt;, and enter the span ID in the &lt;strong&gt;Span ID&lt;/strong&gt; field, for example, &lt;code&gt;64f170a95f537095&lt;/code&gt;. The flame graph then shows only the profile data associated with that span. This example supports 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/configure-traces-to-profiles/&#34;&gt;Trace to profiles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;profiles-query-results&#34;&gt;Profiles query results&lt;/h3&gt;
&lt;p&gt;Profiles can be visualized in a flame graph.
Refer to the 
    &lt;a href=&#34;/docs/grafana/v13.1/panels-visualizations/visualizations/flame-graph/&#34;&gt;Flame Graph documentation&lt;/a&gt; to learn about the visualization and its features.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/pyroscope/query-editor/flame-graph.png&#34;
  alt=&#34;Flame graph&#34; width=&#34;1958&#34;
     height=&#34;1204&#34;/&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id=&#34;metrics-query-results&#34;&gt;Metrics query results&lt;/h3&gt;
&lt;p&gt;Metrics results represent the aggregated sum value over time of the selected profile type.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/pyroscope/query-editor/metric-graph.png&#34;
  alt=&#34;Metrics graph&#34; width=&#34;1942&#34;
     height=&#34;492&#34;/&gt;&lt;/p&gt;
&lt;p&gt;This allows you to quickly see any spikes in the value of the scraped profiles and zoom in to a particular time range.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/template-variables/&#34;&gt;Use template variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/troubleshooting/&#34;&gt;Troubleshoot the Pyroscope data source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="query-profile-data">Query profile data&lt;/h1>
&lt;p>You can query your profile data using the open source Grafana Profiles Drilldown app or the built-in Pyroscope data source query editor.&lt;/p></description></item><item><title>Pyroscope template variables</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/template-variables/</link><pubDate>Mon, 24 Aug 2026 19:23:44 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/template-variables/</guid><content><![CDATA[&lt;h1 id=&#34;pyroscope-template-variables&#34;&gt;Pyroscope template variables&lt;/h1&gt;
&lt;p&gt;Template variables let you create dynamic, reusable dashboards by replacing hard-coded values, such as service names or profile types, with selectable variables. Grafana displays these variables as drop-down menus at the top of the dashboard, letting viewers change the displayed data without editing queries.&lt;/p&gt;
&lt;p&gt;For an introduction to templating and template variables, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/dashboards/variables/&#34;&gt;Templating&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v13.1/dashboards/variables/add-template-variables/&#34;&gt;Add and manage variables&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;query-variable-types&#34;&gt;Query variable types&lt;/h2&gt;
&lt;p&gt;Query variables query the Pyroscope data source to populate drop-down values. When you create a query variable, select a Pyroscope data source and choose a query type.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Query type&lt;/th&gt;
              &lt;th&gt;Required inputs&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Profile type&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;None&lt;/td&gt;
              &lt;td&gt;Returns the profile types available from the data source. The drop-down displays a readable label, while the variable value is the full profile type ID, such as &lt;code&gt;process_cpu:cpu:nanoseconds:cpu:nanoseconds&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Label&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Profile type&lt;/td&gt;
              &lt;td&gt;Returns the label names available for the selected profile type, such as &lt;code&gt;service_name&lt;/code&gt;, &lt;code&gt;namespace&lt;/code&gt;, and &lt;code&gt;region&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Label value&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Profile type, label&lt;/td&gt;
              &lt;td&gt;Returns the values for the selected label, scoped to the selected profile type.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Because the &lt;strong&gt;Label&lt;/strong&gt; and &lt;strong&gt;Label value&lt;/strong&gt; query types require a profile type, and &lt;strong&gt;Label value&lt;/strong&gt; also requires a label, you can chain these variables so that each one depends on the previous selection.&lt;/p&gt;
&lt;h2 id=&#34;create-a-query-variable&#34;&gt;Create a query variable&lt;/h2&gt;
&lt;p&gt;To create a query variable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Dashboard settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Variables&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add variable&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Select variable type&lt;/strong&gt; to &lt;strong&gt;Query&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the Pyroscope data source.&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;Query type&lt;/strong&gt; of &lt;strong&gt;Profile type&lt;/strong&gt;, &lt;strong&gt;Label&lt;/strong&gt;, or &lt;strong&gt;Label value&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For a &lt;strong&gt;Label&lt;/strong&gt; or &lt;strong&gt;Label value&lt;/strong&gt; query, select a &lt;strong&gt;Profile type&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For a &lt;strong&gt;Label value&lt;/strong&gt; query, select a &lt;strong&gt;Label&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt; to save the variable.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;query-variable-examples&#34;&gt;Query variable examples&lt;/h2&gt;
&lt;p&gt;The following examples show common ways to use Pyroscope query variables.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Select a profile type from a drop-down:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a variable named &lt;code&gt;profile_type&lt;/code&gt; to let viewers switch the profile type without editing the query:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set &lt;strong&gt;Query type&lt;/strong&gt; to &lt;strong&gt;Profile type&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Save the variable. The drop-down displays readable labels, while each value is the full profile type ID, such as &lt;code&gt;process_cpu:cpu:nanoseconds:cpu:nanoseconds&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can then reference &lt;code&gt;$profile_type&lt;/code&gt; in the query editor&amp;rsquo;s profile type field.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Populate a drop-down with services:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a variable named &lt;code&gt;service&lt;/code&gt; that lists the services sending profiles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set &lt;strong&gt;Query type&lt;/strong&gt; to &lt;strong&gt;Label value&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Profile type&lt;/strong&gt; to a profile type, such as &lt;code&gt;process_cpu:cpu:nanoseconds:cpu:nanoseconds&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Label&lt;/strong&gt; to &lt;code&gt;service_name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save the variable. The drop-down now lists the values of the &lt;code&gt;service_name&lt;/code&gt; label.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Chain dependent variables:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Combine variables so each one narrows the next. This example builds a profile type selector, a label selector, and a label value selector that all update together:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a &lt;code&gt;profile_type&lt;/code&gt; variable with &lt;strong&gt;Query type&lt;/strong&gt; set to &lt;strong&gt;Profile type&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a &lt;code&gt;label&lt;/code&gt; variable with &lt;strong&gt;Query type&lt;/strong&gt; set to &lt;strong&gt;Label&lt;/strong&gt; and &lt;strong&gt;Profile type&lt;/strong&gt; set to &lt;code&gt;$profile_type&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Create a &lt;code&gt;label_value&lt;/code&gt; variable with &lt;strong&gt;Query type&lt;/strong&gt; set to &lt;strong&gt;Label value&lt;/strong&gt;, &lt;strong&gt;Profile type&lt;/strong&gt; set to &lt;code&gt;$profile_type&lt;/code&gt;, and &lt;strong&gt;Label&lt;/strong&gt; set to &lt;code&gt;$label&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When a viewer changes &lt;code&gt;profile_type&lt;/code&gt;, the &lt;code&gt;label&lt;/code&gt; drop-down refreshes with the labels for that profile type, and &lt;code&gt;label_value&lt;/code&gt; refreshes with the values for the selected label.&lt;/p&gt;
&lt;h2 id=&#34;use-variables-in-queries&#34;&gt;Use variables in queries&lt;/h2&gt;
&lt;p&gt;After you create a variable, reference it in the query editor using the &lt;code&gt;$variable&lt;/code&gt; or &lt;code&gt;${variable}&lt;/code&gt; syntax. You can reference variables in both the profile type field and the label selector.&lt;/p&gt;
&lt;p&gt;For example, if you have a variable named &lt;code&gt;service&lt;/code&gt; created with the &lt;strong&gt;Label value&lt;/strong&gt; query type on the &lt;code&gt;service_name&lt;/code&gt; label, reference it in the label selector:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=&amp;#34;$service&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To let viewers switch the profile type, enter &lt;code&gt;$profile_type&lt;/code&gt; in the query editor&amp;rsquo;s profile type field.&lt;/p&gt;
&lt;p&gt;When &lt;strong&gt;Multi-value&lt;/strong&gt; or &lt;strong&gt;Include All&lt;/strong&gt; is enabled for the variable, the value becomes a regular expression pattern, such as &lt;code&gt;value1|value2&lt;/code&gt;. Use the &lt;code&gt;=~&lt;/code&gt; operator instead of &lt;code&gt;=&lt;/code&gt; in your label selector:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=~&amp;#34;$service&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;where-you-can-use-template-variables&#34;&gt;Where you can use template variables&lt;/h2&gt;
&lt;p&gt;The Pyroscope data source interpolates template variables in only some parts of the query editor. The following table lists which fields support variables.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Query editor field&lt;/th&gt;
              &lt;th&gt;Supports template variables&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Profile type&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Label selector&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Group by&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Span ID&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Max Nodes&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Limit&lt;/td&gt;
              &lt;td&gt;No&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Query variable definitions also support variables. You can reference one variable in another to chain &lt;strong&gt;Label&lt;/strong&gt; and &lt;strong&gt;Label value&lt;/strong&gt; queries, as shown in &lt;a href=&#34;#query-variable-examples&#34;&gt;Chain dependent variables&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Fields other than the profile type and label selector don&amp;rsquo;t interpolate template variables. If you enter a variable such as &lt;code&gt;$group&lt;/code&gt; in the &lt;strong&gt;Group by&lt;/strong&gt;, &lt;strong&gt;Span ID&lt;/strong&gt;, &lt;strong&gt;Max Nodes&lt;/strong&gt;, or &lt;strong&gt;Limit&lt;/strong&gt; fields, Grafana passes the literal text to the backend instead of the variable&amp;rsquo;s value.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;filters-variable&#34;&gt;Filters variable&lt;/h2&gt;
&lt;p&gt;The Pyroscope data source supports the 
    &lt;a href=&#34;/docs/grafana/v13.1/dashboards/variables/add-template-variables/#add-ad-hoc-filters&#34;&gt;Filters&lt;/a&gt; variable type, which lets dashboard viewers add label filters without editing queries.&lt;/p&gt;
&lt;p&gt;To set up a Filters variable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Dashboard settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Variables&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Add variable&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Select variable type&lt;/strong&gt; to &lt;strong&gt;Filters&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the Pyroscope data source.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Apply&lt;/strong&gt; to save the variable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After you add the variable, a filter bar appears at the top of the dashboard. Viewers can add filters by selecting a label, an operator (&lt;code&gt;=&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;, &lt;code&gt;=~&lt;/code&gt;, &lt;code&gt;!~&lt;/code&gt;), and a value. Grafana applies these filters to all Pyroscope queries on the dashboard.&lt;/p&gt;
&lt;h2 id=&#34;related-resources&#34;&gt;Related resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/query-editor/&#34;&gt;Query profile data&lt;/a&gt;: Use variables in the label selector.&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/troubleshooting/&#34;&gt;Troubleshoot the Pyroscope data source&lt;/a&gt;: Resolve variable-related query issues.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="pyroscope-template-variables">Pyroscope template variables&lt;/h1>
&lt;p>Template variables let you create dynamic, reusable dashboards by replacing hard-coded values, such as service names or profile types, with selectable variables. Grafana displays these variables as drop-down menus at the top of the dashboard, letting viewers change the displayed data without editing queries.&lt;/p></description></item><item><title>Troubleshoot Pyroscope data source issues</title><link>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/troubleshooting/</link><pubDate>Mon, 24 Aug 2026 19:23:44 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.1/datasources/pyroscope/troubleshooting/</guid><content><![CDATA[&lt;h1 id=&#34;troubleshoot-pyroscope-data-source-issues&#34;&gt;Troubleshoot Pyroscope data source issues&lt;/h1&gt;
&lt;p&gt;This document provides solutions to common issues you may encounter when configuring or using the Pyroscope data source. For configuration instructions, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/configure/&#34;&gt;Configure the Pyroscope data source&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;connection-and-configuration-errors&#34;&gt;Connection and configuration errors&lt;/h2&gt;
&lt;p&gt;These errors occur when setting up the data source or when connecting to the Pyroscope backend.&lt;/p&gt;
&lt;h3 id=&#34;data-source-is-not-working-or-connection-fails&#34;&gt;&amp;ldquo;Data source is not working&amp;rdquo; or connection fails&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Save &amp;amp; test fails with a connection error&lt;/li&gt;
&lt;li&gt;Error message indicates the Pyroscope backend is unreachable&lt;/li&gt;
&lt;li&gt;Timeout errors when testing the data source&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Possible causes and solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Cause&lt;/th&gt;
              &lt;th&gt;Solution&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Incorrect URL&lt;/td&gt;
              &lt;td&gt;Verify the URL points to your Pyroscope instance. For self-managed deployments, the default port is &lt;code&gt;4040&lt;/code&gt; (for example, &lt;code&gt;http://localhost:4040&lt;/code&gt;).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Pyroscope service not running&lt;/td&gt;
              &lt;td&gt;Check that the Pyroscope backend is running and accessible. Use &lt;code&gt;curl&lt;/code&gt; or a browser to test connectivity to the Pyroscope URL.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Network connectivity issues&lt;/td&gt;
              &lt;td&gt;Verify network connectivity from the Grafana server to the Pyroscope endpoint. Check firewall rules allow outbound connections on the required port.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Microservices mode routing&lt;/td&gt;
              &lt;td&gt;If running Pyroscope in microservices mode, ensure the URL points to a gateway or proxy that routes requests correctly. Refer to the Helm ingress configuration for routing requirements.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;TLS/SSL certificate issues&lt;/td&gt;
              &lt;td&gt;If using HTTPS, verify the certificate is valid and trusted by the Grafana server. Configure TLS settings in the data source if using self-signed certificates.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;url-format-issues&#34;&gt;URL format issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data source test fails immediately&lt;/li&gt;
&lt;li&gt;Error indicates invalid URL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure the URL includes the protocol (&lt;code&gt;http://&lt;/code&gt; or &lt;code&gt;https://&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Remove any trailing slashes from the URL.&lt;/li&gt;
&lt;li&gt;For Grafana Cloud Profiles, find the correct URL under &lt;strong&gt;Manage your stack&lt;/strong&gt; in your organization settings.&lt;/li&gt;
&lt;li&gt;Verify the port number is correct for your deployment.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;connection-refused-or-timeout-errors&#34;&gt;&amp;ldquo;Connection refused&amp;rdquo; or timeout errors&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data source test fails with network errors&lt;/li&gt;
&lt;li&gt;Queries fail with connection errors&lt;/li&gt;
&lt;li&gt;Intermittent connectivity issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify network connectivity from the Grafana server to the Pyroscope endpoint.&lt;/li&gt;
&lt;li&gt;Check firewall rules allow outbound connections on the required port (default: 4040).&lt;/li&gt;
&lt;li&gt;For Kubernetes deployments, verify the service is exposed correctly.&lt;/li&gt;
&lt;li&gt;Check if a proxy is required and configure it in the data source settings.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;ssltls-certificate-errors&#34;&gt;SSL/TLS certificate errors&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Certificate validation failures&lt;/li&gt;
&lt;li&gt;SSL handshake errors&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Certificate not trusted&amp;rdquo; messages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure the system time is correct on the Grafana server.&lt;/li&gt;
&lt;li&gt;Verify the certificate is valid and not expired.&lt;/li&gt;
&lt;li&gt;For self-signed certificates, enable &lt;strong&gt;Skip TLS Verify&lt;/strong&gt; in the data source settings (not recommended for production).&lt;/li&gt;
&lt;li&gt;Add the CA certificate to the Grafana server&amp;rsquo;s trusted certificates.&lt;/li&gt;
&lt;li&gt;Check that intermediate certificates are included in the certificate chain.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;private-connectivity-or-reverse-proxy-issues&#34;&gt;Private connectivity or reverse proxy issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The data source works from some networks but not others.&lt;/li&gt;
&lt;li&gt;Connecting through a reverse proxy, load balancer, or private link fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Include the scheme in the &lt;strong&gt;Connection URL&lt;/strong&gt;. When connecting through a private endpoint or reverse proxy, use &lt;code&gt;https://&lt;/code&gt; explicitly rather than a bare host name.&lt;/li&gt;
&lt;li&gt;Ensure the reverse proxy or gateway forwards the Pyroscope API paths unchanged. Rewriting or stripping the request path prevents the data source from reaching the backend.&lt;/li&gt;
&lt;li&gt;For Grafana Cloud connecting to a Pyroscope backend on a private network, configure &lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/private-data-source-connect/&#34;&gt;Private data source connect&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Verify that any firewall or private link allows outbound HTTPS from Grafana to the Pyroscope endpoint.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;authentication-errors&#34;&gt;Authentication errors&lt;/h2&gt;
&lt;p&gt;These errors occur when the data source cannot authenticate with the Pyroscope backend.&lt;/p&gt;
&lt;h3 id=&#34;authentication-failed-or-unauthorized&#34;&gt;&amp;ldquo;Authentication failed&amp;rdquo; or &amp;ldquo;Unauthorized&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Save &amp;amp; test fails with authentication errors&lt;/li&gt;
&lt;li&gt;Queries return 401 or 403 status codes&lt;/li&gt;
&lt;li&gt;Profile types don&amp;rsquo;t load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Possible causes and solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Cause&lt;/th&gt;
              &lt;th&gt;Solution&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Invalid credentials&lt;/td&gt;
              &lt;td&gt;Verify the username and password or API key are correct.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Expired credentials&lt;/td&gt;
              &lt;td&gt;Generate new credentials and update the data source configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Incorrect authentication type&lt;/td&gt;
              &lt;td&gt;Ensure you&amp;rsquo;ve selected the correct authentication method for your Pyroscope deployment (Basic auth, API key, or no authentication for local setups).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Missing authentication headers&lt;/td&gt;
              &lt;td&gt;For custom authentication, verify the required headers are configured correctly in the data source settings.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;basic-authentication-not-working&#34;&gt;Basic authentication not working&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basic auth credentials are rejected&lt;/li&gt;
&lt;li&gt;Works in browser but fails in Grafana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify Basic authentication is enabled in the data source settings.&lt;/li&gt;
&lt;li&gt;Ensure the username and password are entered correctly (no extra spaces).&lt;/li&gt;
&lt;li&gt;Check that the Pyroscope backend is configured to accept Basic authentication.&lt;/li&gt;
&lt;li&gt;For Grafana Cloud Profiles, use Basic authentication with your access policy token as the password. Refer to &lt;a href=&#34;#grafana-cloud-access-policy-and-token-issues&#34;&gt;Grafana Cloud access policy and token issues&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;api-key-authentication-issues&#34;&gt;API key authentication issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API key is rejected&lt;/li&gt;
&lt;li&gt;Error indicates invalid token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify you&amp;rsquo;re using the correct API key format for your Pyroscope deployment.&lt;/li&gt;
&lt;li&gt;For Grafana Cloud, generate a new access policy token with the &lt;code&gt;profiles:read&lt;/code&gt; scope.&lt;/li&gt;
&lt;li&gt;Ensure the credentials have the required permissions to read profiling data.&lt;/li&gt;
&lt;li&gt;Check if the token has expired and generate a new one if necessary.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;grafana-cloud-access-policy-and-token-issues&#34;&gt;Grafana Cloud access policy and token issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authentication fails when connecting a data source to Grafana Cloud Profiles.&lt;/li&gt;
&lt;li&gt;Queries return 401 or 403 after a backend migration or stack change.&lt;/li&gt;
&lt;li&gt;The data source reads from a different stack or tenant than expected.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grafana Cloud Profiles authenticates with an access policy token rather than a user password. The token must belong to an access policy that includes the &lt;code&gt;profiles:read&lt;/code&gt; scope and targets the correct stack. A token with the wrong scope, or one created for a different stack, fails authentication or returns data from the wrong tenant. Tokens and connection URLs are stack-specific and don&amp;rsquo;t carry over during a migration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create or select an access policy that includes the &lt;code&gt;profiles:read&lt;/code&gt; scope and whose realm targets the correct stack, then generate a token for that policy.&lt;/li&gt;
&lt;li&gt;In the data source, enable &lt;strong&gt;Basic auth&lt;/strong&gt;. Enter the numeric instance ID as the username and the access policy token as the password. Find the instance ID and endpoint under &lt;strong&gt;Manage your stack&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Confirm the &lt;strong&gt;Connection URL&lt;/strong&gt; points to the Pyroscope endpoint for the same stack as the token.&lt;/li&gt;
&lt;li&gt;After a backend migration or stack change, regenerate the token, then update both the URL and credentials.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;query-errors&#34;&gt;Query errors&lt;/h2&gt;
&lt;p&gt;These errors occur when executing queries against the Pyroscope data source.&lt;/p&gt;
&lt;h3 id=&#34;no-data-or-empty-results&#34;&gt;&amp;ldquo;No data&amp;rdquo; or empty results&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Query executes without error but returns no data&lt;/li&gt;
&lt;li&gt;Flame graph shows &amp;ldquo;No data&amp;rdquo; message&lt;/li&gt;
&lt;li&gt;Metrics graph is empty&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Possible causes and solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Cause&lt;/th&gt;
              &lt;th&gt;Solution&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Time range doesn&amp;rsquo;t contain data&lt;/td&gt;
              &lt;td&gt;Expand the dashboard time range. Profiling data may not exist for the selected period.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Application not sending profiles&lt;/td&gt;
              &lt;td&gt;Verify your application is configured to send profiles to Pyroscope. Check the Pyroscope agent or SDK configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Incorrect profile type selected&lt;/td&gt;
              &lt;td&gt;Select a different profile type from the drop-down menu. Not all profile types are available for all applications.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Label selector too restrictive&lt;/td&gt;
              &lt;td&gt;Remove or modify label filters to broaden the query. Start without filters to verify data exists.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Wrong service or application selected&lt;/td&gt;
              &lt;td&gt;Verify the &lt;code&gt;service_name&lt;/code&gt; label matches your application&amp;rsquo;s configuration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Profile type or app not selected&lt;/td&gt;
              &lt;td&gt;Ensure you&amp;rsquo;ve selected a profile type or app in the query editor. The query returns no data if neither is selected.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If the data source connection tests successfully but no profiles exist for any query, the problem is usually on the ingestion side rather than in the data source. The data source only reads profiles from Pyroscope; it doesn&amp;rsquo;t collect or send them. Verify that your application, SDK, or collector, such as Grafana Alloy or an OpenTelemetry Collector, is sending profiles to your Pyroscope backend. For ingestion setup, refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/&#34;&gt;Configure the client to send profiles&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;profile-type-not-found-or-empty-profile-type-selector&#34;&gt;&amp;ldquo;Profile type not found&amp;rdquo; or empty profile type selector&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profile type drop-down is empty&lt;/li&gt;
&lt;li&gt;Error indicates profile type doesn&amp;rsquo;t exist&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the Pyroscope backend is receiving profiles from your applications.&lt;/li&gt;
&lt;li&gt;Check that the time range includes periods when profiles were collected.&lt;/li&gt;
&lt;li&gt;Test the data source connection to ensure it&amp;rsquo;s working correctly.&lt;/li&gt;
&lt;li&gt;For new deployments, wait a few minutes for initial profile data to be ingested.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;label-names-or-values-not-loading&#34;&gt;Label names or values not loading&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Label selector doesn&amp;rsquo;t populate&lt;/li&gt;
&lt;li&gt;No labels appear in the drop-down menus&lt;/li&gt;
&lt;li&gt;Autocomplete doesn&amp;rsquo;t work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the data source connection is working by testing it in the settings.&lt;/li&gt;
&lt;li&gt;Select a profile type first, as labels are loaded based on the selected profile type.&lt;/li&gt;
&lt;li&gt;Expand the time range to ensure label data is available.&lt;/li&gt;
&lt;li&gt;Check the browser console for JavaScript errors that might indicate issues.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;query-syntax-errors&#34;&gt;Query syntax errors&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Error message indicates invalid query syntax&lt;/li&gt;
&lt;li&gt;Label selector is rejected&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the correct label selector syntax. Pyroscope uses a syntax similar to Prometheus.&lt;/li&gt;
&lt;li&gt;Enclose label values in double quotes: &lt;code&gt;{service_name=&amp;quot;my-service&amp;quot;}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use valid operators: &lt;code&gt;=&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;, &lt;code&gt;=~&lt;/code&gt;, &lt;code&gt;!~&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Escape special characters in regular expression patterns when using &lt;code&gt;=~&lt;/code&gt; or &lt;code&gt;!~&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example valid queries:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;{service_name=&amp;#34;my-app&amp;#34;}
{service_name=&amp;#34;my-app&amp;#34;, env=&amp;#34;production&amp;#34;}
{service_name=~&amp;#34;my-app.*&amp;#34;}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;queries-return-only-recent-data-even-though-older-data-is-retained&#34;&gt;Queries return only recent data even though older data is retained&lt;/h3&gt;
&lt;p&gt;If a query over a long time range returns data only for the most recent days, the query time range likely exceeds a server-side query limit. This is most commonly reported in Grafana Cloud Profiles. Refer to &lt;a href=&#34;#query-time-range-and-retention-limits&#34;&gt;Query time range and retention limits&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;flame-graph-issues&#34;&gt;Flame graph issues&lt;/h2&gt;
&lt;p&gt;These errors are specific to the flame graph visualization.&lt;/p&gt;
&lt;h3 id=&#34;flame-graph-not-rendering&#34;&gt;Flame graph not rendering&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Query returns data but flame graph doesn&amp;rsquo;t display&lt;/li&gt;
&lt;li&gt;Flame graph area is blank&lt;/li&gt;
&lt;li&gt;Loading indicator never completes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check that the Query Type is set to include profile data (not metrics only).&lt;/li&gt;
&lt;li&gt;Verify the response contains valid profile data using the Query Inspector.&lt;/li&gt;
&lt;li&gt;Try refreshing the page or re-running the query.&lt;/li&gt;
&lt;li&gt;For large profiles, increase the browser memory limits or reduce the time range.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;flame-graph-times-out-or-fails-to-load-on-large-time-ranges&#34;&gt;Flame graph times out or fails to load on large time ranges&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A flame graph renders for a short time range, such as five minutes, but times out for a longer range, such as 30 minutes or more.&lt;/li&gt;
&lt;li&gt;Queries over large time ranges are slow or fail intermittently.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rendering a flame graph over a large time range requires the Pyroscope backend to merge many profiles, which increases query time and memory use. Large or high-cardinality ranges can exceed request timeouts before a result returns.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Narrow the time range. Start with a short window, such as five minutes, then widen it gradually to find the largest range that renders reliably.&lt;/li&gt;
&lt;li&gt;Add label filters to reduce the volume of profiles the backend must merge.&lt;/li&gt;
&lt;li&gt;Confirm the range is within the server-side query limits described in &lt;a href=&#34;#query-time-range-and-retention-limits&#34;&gt;Query time range and retention limits&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For self-managed deployments, review backend resources and query timeout settings if large ranges consistently fail.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;flame-graph-shows-aggregated-data-without-detail&#34;&gt;Flame graph shows aggregated data without detail&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flame graph lacks expected granularity&lt;/li&gt;
&lt;li&gt;Function names are missing or truncated&lt;/li&gt;
&lt;li&gt;Stack traces appear incomplete&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Zoom in to a smaller time range to get more detailed profiles.&lt;/li&gt;
&lt;li&gt;Verify your application is instrumented to capture full stack traces.&lt;/li&gt;
&lt;li&gt;Check if the profiling agent is configured with sufficient sampling rate.&lt;/li&gt;
&lt;li&gt;For compiled languages, ensure debug symbols are available.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;unable-to-interact-with-flame-graph&#34;&gt;Unable to interact with flame graph&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clicking on flame graph elements doesn&amp;rsquo;t work&lt;/li&gt;
&lt;li&gt;Tooltip doesn&amp;rsquo;t appear&lt;/li&gt;
&lt;li&gt;Zoom and filter controls are unresponsive&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify JavaScript is enabled in your browser.&lt;/li&gt;
&lt;li&gt;Check the browser console for JavaScript errors.&lt;/li&gt;
&lt;li&gt;Try using a different browser or clearing the browser cache.&lt;/li&gt;
&lt;li&gt;Update Grafana to the latest version.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;template-variable-errors&#34;&gt;Template variable errors&lt;/h2&gt;
&lt;p&gt;These errors occur when using template variables with the Pyroscope data source.&lt;/p&gt;
&lt;h3 id=&#34;variables-return-no-values&#34;&gt;Variables return no values&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The variable drop-down is empty&lt;/li&gt;
&lt;li&gt;Dependent variables don&amp;rsquo;t populate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the data source connection is working by testing it in the settings.&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Label&lt;/strong&gt; and &lt;strong&gt;Label value&lt;/strong&gt; variables, verify that a profile type is selected. Labels and label values are scoped to the selected profile type.&lt;/li&gt;
&lt;li&gt;Expand the dashboard time range to ensure the variable query covers a period when profiles were collected.&lt;/li&gt;
&lt;li&gt;Confirm the Pyroscope backend is receiving profiles from your applications.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;variables-dont-filter-queries-as-expected&#34;&gt;Variables don&amp;rsquo;t filter queries as expected&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Query results don&amp;rsquo;t change when the variable value changes&lt;/li&gt;
&lt;li&gt;Queries return no data after selecting a variable value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the variable is referenced correctly in the label selector, for example, &lt;code&gt;{service_name=&amp;quot;$service&amp;quot;}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;When &lt;strong&gt;Multi-value&lt;/strong&gt; or &lt;strong&gt;Include All&lt;/strong&gt; is enabled, the variable value becomes a regular expression pattern. Use the &lt;code&gt;=~&lt;/code&gt; operator instead of &lt;code&gt;=&lt;/code&gt;, for example, &lt;code&gt;{service_name=~&amp;quot;$service&amp;quot;}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirm the label used in the variable exists on the profiling data for the selected profile type.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/template-variables/&#34;&gt;Pyroscope template variables&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;profiles-drilldown-issues&#34;&gt;Profiles Drilldown issues&lt;/h2&gt;
&lt;p&gt;These errors are specific to the 
    &lt;a href=&#34;/docs/grafana/v13.1/explore/simplified-exploration/profiles/&#34;&gt;Profiles Drilldown&lt;/a&gt; application.&lt;/p&gt;
&lt;h3 id=&#34;profiles-drilldown-not-available&#34;&gt;Profiles Drilldown not available&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profiles Drilldown option doesn&amp;rsquo;t appear in the menu&lt;/li&gt;
&lt;li&gt;Error when trying to access Profiles Drilldown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the Profiles Drilldown plugin is installed and enabled.&lt;/li&gt;
&lt;li&gt;For self-managed Grafana, install the plugin from the Grafana plugin catalog.&lt;/li&gt;
&lt;li&gt;Restart Grafana after installing the plugin.&lt;/li&gt;
&lt;li&gt;Check that you have the required permissions to access the application.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;services-or-profiles-not-appearing-in-profiles-drilldown&#34;&gt;Services or profiles not appearing in Profiles Drilldown&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profiles Drilldown shows no services&lt;/li&gt;
&lt;li&gt;Expected applications are missing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the Pyroscope data source is configured and working.&lt;/li&gt;
&lt;li&gt;Check that profiles are being ingested with the correct &lt;code&gt;service_name&lt;/code&gt; label.&lt;/li&gt;
&lt;li&gt;Ensure the time range includes periods when profiles were collected.&lt;/li&gt;
&lt;li&gt;For microservices mode, verify the data source URL points to the correct gateway.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;trace-to-profiles-issues&#34;&gt;Trace to profiles issues&lt;/h2&gt;
&lt;p&gt;These errors occur when linking tracing and profiling data.&lt;/p&gt;
&lt;p&gt;Trace to profiles is the most configuration-sensitive feature of the data source. Most issues come from an unmet prerequisite rather than a data source misconfiguration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites checklist:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Confirm all of the following before troubleshooting further:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your application is instrumented with a Pyroscope language SDK for profiling and with OpenTelemetry for tracing.&lt;/li&gt;
&lt;li&gt;You installed the OpenTelemetry span-profiling bridge package for your language. This is a separate package from the Pyroscope SDK and the OpenTelemetry SDK.&lt;/li&gt;
&lt;li&gt;Profiling uses SDK-based instrumentation. Span profiles aren&amp;rsquo;t available with eBPF-based collection.&lt;/li&gt;
&lt;li&gt;The Tempo data source has Trace to profiles configured and points to your Pyroscope data source.&lt;/li&gt;
&lt;li&gt;The tags configured in the Tempo data source are present on the span&amp;rsquo;s attributes or resources.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For per-language setup instructions, refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/&#34;&gt;Link traces to profiles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;span-profiles-not-appearing&#34;&gt;Span profiles not appearing&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trace spans don&amp;rsquo;t show profile links&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Profiles for this span&amp;rdquo; option is missing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the Tempo data source is configured with Trace to profiles enabled and that it points to your Pyroscope data source.&lt;/li&gt;
&lt;li&gt;Confirm the &lt;code&gt;pyroscope.profile.id&lt;/code&gt; attribute exists on the span in Tempo. If it&amp;rsquo;s missing, the bridge package isn&amp;rsquo;t tagging spans correctly.&lt;/li&gt;
&lt;li&gt;Confirm the &lt;code&gt;span_name&lt;/code&gt; label exists on the profiling data in Pyroscope. If it&amp;rsquo;s missing, the bridge package isn&amp;rsquo;t labeling samples correctly.&lt;/li&gt;
&lt;li&gt;Verify that the tags you configured in the Tempo data source match the span&amp;rsquo;s attributes or resources. If they don&amp;rsquo;t match, the link doesn&amp;rsquo;t appear.&lt;/li&gt;
&lt;li&gt;Verify profile data exists for the time range of the trace.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For more information, refer to 
    &lt;a href=&#34;/docs/grafana/v13.1/datasources/pyroscope/configure-traces-to-profiles/&#34;&gt;Configure Trace to profiles&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;profile-doesnt-match-the-trace-span&#34;&gt;Profile doesn&amp;rsquo;t match the trace span&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Profile data doesn&amp;rsquo;t correlate with the trace&lt;/li&gt;
&lt;li&gt;Wrong time range in profile&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify the trace and profile timestamps are synchronized.&lt;/li&gt;
&lt;li&gt;Check that the application&amp;rsquo;s clock is accurate.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;code&gt;span_id&lt;/code&gt; and &lt;code&gt;trace_id&lt;/code&gt; labels are correctly propagated to profiles.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;span-profiles-arent-available-with-ebpf-based-collection&#34;&gt;Span profiles aren&amp;rsquo;t available with eBPF-based collection&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Traces and profiles both exist, but no span links appear.&lt;/li&gt;
&lt;li&gt;Profiling is collected with eBPF, for example through Grafana Alloy or Beyla.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Span profiling correlates profiling samples with the active trace span, which requires a language SDK and the OpenTelemetry span-profiling bridge. eBPF-based collection can&amp;rsquo;t associate samples with individual spans, so it doesn&amp;rsquo;t produce span profiles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instrument the application with a supported Pyroscope language SDK and the matching bridge package to enable span profiles.&lt;/li&gt;
&lt;li&gt;If you must use eBPF profiling, view profiles by service instead. Per-span correlation isn&amp;rsquo;t currently supported for eBPF-collected data.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;filter-span-profiles-by-span-name-or-trace-id-not-span-id&#34;&gt;Filter span profiles by span name or trace ID, not span ID&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Queries filtered by &lt;code&gt;span_id&lt;/code&gt; return no data, while &lt;code&gt;span_name&lt;/code&gt; works.&lt;/li&gt;
&lt;li&gt;Correlating profiles to a specific span by &lt;code&gt;span_id&lt;/code&gt; is unreliable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The span-profiling bridge labels profiling samples with &lt;code&gt;span_name&lt;/code&gt; and &lt;code&gt;trace_id&lt;/code&gt;. Depending on the SDK, profiling context may be attached only to the root span of a trace, with child spans inheriting it. &lt;code&gt;span_id&lt;/code&gt; is high cardinality and isn&amp;rsquo;t a dependable correlation label.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Filter profiling data by &lt;code&gt;span_name&lt;/code&gt; or &lt;code&gt;trace_id&lt;/code&gt; rather than &lt;code&gt;span_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use the &lt;strong&gt;Profiles for this span&lt;/strong&gt; link, which correlates using the &lt;code&gt;pyroscope.profile.id&lt;/code&gt; span attribute rather than a label query.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;net-profiler-conflict-with-opentelemetry-auto-instrumentation&#34;&gt;.NET profiler conflict with OpenTelemetry auto-instrumentation&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On .NET, span profiles don&amp;rsquo;t work when the Pyroscope .NET profiler and OpenTelemetry auto-instrumentation are both enabled.&lt;/li&gt;
&lt;li&gt;One profiler fails to attach.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The .NET CLR allows only one profiler to attach to a process at a time. The Pyroscope .NET profiler and OpenTelemetry auto-instrumentation each rely on a separate CLR profiler, so they conflict.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use OpenTelemetry manual instrumentation instead of auto-instrumentation.&lt;/li&gt;
&lt;li&gt;Add the &lt;code&gt;Pyroscope.OpenTelemetry&lt;/code&gt; package and register the &lt;code&gt;PyroscopeSpanProcessor&lt;/code&gt; in your tracing pipeline.&lt;/li&gt;
&lt;li&gt;For setup instructions, refer to 
    &lt;a href=&#34;/docs/pyroscope/latest/configure-client/trace-span-profiles/dotnet-span-profiles/&#34;&gt;Span profiles with Traces to profiles for .NET&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;correlate-logs-with-profiles&#34;&gt;Correlate logs with profiles&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want to navigate from a log line directly to profiling data, but no link exists.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grafana supports Trace to profiles, but there&amp;rsquo;s no direct logs-to-profiles correlation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Correlate through shared labels, such as &lt;code&gt;service_name&lt;/code&gt;, to move between logs and profiles for the same service and time range.&lt;/li&gt;
&lt;li&gt;If your logs contain a &lt;code&gt;trace_id&lt;/code&gt;, use a Loki derived field to open the trace, then use &lt;strong&gt;Profiles for this span&lt;/strong&gt; from the trace to reach the profiling data.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;performance-issues&#34;&gt;Performance issues&lt;/h2&gt;
&lt;p&gt;These issues relate to slow queries or high resource usage.&lt;/p&gt;
&lt;h3 id=&#34;slow-queries-or-timeouts&#34;&gt;Slow queries or timeouts&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Queries take a long time to complete&lt;/li&gt;
&lt;li&gt;Requests time out before returning results&lt;/li&gt;
&lt;li&gt;Dashboard panels fail to load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the time range to decrease the amount of data processed.&lt;/li&gt;
&lt;li&gt;Add label filters to narrow the query scope.&lt;/li&gt;
&lt;li&gt;Increase the &lt;strong&gt;Timeout&lt;/strong&gt; setting in the data source&amp;rsquo;s &lt;strong&gt;Additional settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Adjust the &lt;strong&gt;Minimal step&lt;/strong&gt; setting to reduce the number of data points.&lt;/li&gt;
&lt;li&gt;For large deployments, ensure the Pyroscope backend has sufficient resources.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;high-memory-usage-in-browser&#34;&gt;High memory usage in browser&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser becomes unresponsive when viewing profiles&lt;/li&gt;
&lt;li&gt;Memory warnings appear&lt;/li&gt;
&lt;li&gt;Page crashes when loading flame graphs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reduce the time range to load smaller profiles.&lt;/li&gt;
&lt;li&gt;Close unnecessary browser tabs to free up memory.&lt;/li&gt;
&lt;li&gt;Use a smaller aggregation window for very large profiles.&lt;/li&gt;
&lt;li&gt;Consider using Profiles Drilldown for large-scale analysis.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;grafana-cloud-specific-issues&#34;&gt;Grafana Cloud-specific issues&lt;/h2&gt;
&lt;p&gt;These issues are most commonly reported in Grafana Cloud Profiles. Some limits also apply to self-managed Pyroscope deployments, where you can adjust them directly in the Pyroscope configuration.&lt;/p&gt;
&lt;h3 id=&#34;query-time-range-and-retention-limits&#34;&gt;Query time range and retention limits&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A query over a long time range, such as 30 days, returns data only for the most recent days.&lt;/li&gt;
&lt;li&gt;Older profiles appear to be missing even though the retention period hasn&amp;rsquo;t elapsed.&lt;/li&gt;
&lt;li&gt;Users interpret the missing data as data loss or a bug.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pyroscope enforces query limits on the server side that are separate from, and often shorter than, the data retention period. These limits are enforced by the Pyroscope query frontend, not by the Grafana data source, so the data source can&amp;rsquo;t change or override them.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Limit&lt;/th&gt;
              &lt;th&gt;Default&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;querier.max-query-lookback&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;7d&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;How far back from the current time a query can read. Requests for data older than this window don&amp;rsquo;t fail. Instead, the range is silently truncated to the allowed window, which looks like missing data.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;querier.max-query-length&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;24h&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The maximum time span of a single query. Requests that exceed this span are rejected.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Because retention is typically longer than the query window, profiles can be retained but not queryable. For example, Grafana Cloud Profiles retains data for 14 days on free plans and 30 days on paid plans, while the default query window is 7 days.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The default values shown are the Pyroscope OSS defaults. Grafana Cloud and self-managed deployments may configure different values.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirm this is a limit rather than a gap in ingestion by narrowing the time range to the most recent period and verifying that data appears.&lt;/li&gt;
&lt;li&gt;To query further back than the query window, raise the limit rather than splitting the query into smaller ranges. Because the window is measured from the current time, splitting a long range into 7-day increments doesn&amp;rsquo;t return older data.&lt;/li&gt;
&lt;li&gt;For self-managed deployments, increase &lt;code&gt;querier.max-query-lookback&lt;/code&gt; and, if needed, &lt;code&gt;querier.max-query-length&lt;/code&gt; in the Pyroscope limits configuration. Set a value to &lt;code&gt;0&lt;/code&gt; to disable that limit.&lt;/li&gt;
&lt;li&gt;For Grafana Cloud Profiles, contact Grafana Support to adjust these limits for your tenant.&lt;/li&gt;
&lt;li&gt;If a single query exceeds &lt;code&gt;querier.max-query-length&lt;/code&gt;, reduce the query&amp;rsquo;s time span so it stays within the configured limit.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;enable-debug-logging&#34;&gt;Enable debug logging&lt;/h2&gt;
&lt;p&gt;To capture detailed error information for troubleshooting:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Set the Grafana log level to &lt;code&gt;debug&lt;/code&gt; in the configuration file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[log]
level = debug&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Review logs in &lt;code&gt;/var/log/grafana/grafana.log&lt;/code&gt; (or your configured log location).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Look for Pyroscope-specific entries that include request and response details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reset the log level to &lt;code&gt;info&lt;/code&gt; after troubleshooting to avoid excessive log volume.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;get-additional-help&#34;&gt;Get additional help&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;ve tried the solutions in this guide and still encounter issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check the &lt;a href=&#34;https://community.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana community forums&lt;/a&gt; for similar issues.&lt;/li&gt;
&lt;li&gt;Review the &lt;a href=&#34;https://github.com/grafana/pyroscope/issues&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Pyroscope GitHub issues&lt;/a&gt; for known bugs.&lt;/li&gt;
&lt;li&gt;Refer to &lt;a href=&#34;/docs/pyroscope/latest/&#34;&gt;Pyroscope documentation&lt;/a&gt; for additional guidance.&lt;/li&gt;
&lt;li&gt;Contact &lt;a href=&#34;/contact/&#34;&gt;Grafana Support&lt;/a&gt; if you&amp;rsquo;re an Enterprise, Cloud Pro, or Cloud Contracted user.&lt;/li&gt;
&lt;li&gt;When reporting issues, include:
&lt;ul&gt;
&lt;li&gt;Grafana version&lt;/li&gt;
&lt;li&gt;Pyroscope version (if self-managed)&lt;/li&gt;
&lt;li&gt;Error messages (redact sensitive information)&lt;/li&gt;
&lt;li&gt;Steps to reproduce&lt;/li&gt;
&lt;li&gt;Data source configuration (redact credentials)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="troubleshoot-pyroscope-data-source-issues">Troubleshoot Pyroscope data source issues&lt;/h1>
&lt;p>This document provides solutions to common issues you may encounter when configuring or using the Pyroscope data source. For configuration instructions, refer to
&lt;a href="/docs/grafana/v13.1/datasources/pyroscope/configure/">Configure the Pyroscope data source&lt;/a>.&lt;/p></description></item></channel></rss>