<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Grafana Advisor on Grafana Labs</title><link>https://grafana.com/docs/grafana/v13.0/administration/grafana-advisor/</link><description>Recent content in Grafana Advisor on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v13.0/administration/grafana-advisor/index.xml" rel="self" type="application/rss+xml"/><item><title>Manage Grafana Advisor using the Grafana CLI</title><link>https://grafana.com/docs/grafana/v13.0/administration/grafana-advisor/advisor-cli/</link><pubDate>Tue, 14 Apr 2026 09:48:24 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.0/administration/grafana-advisor/advisor-cli/</guid><content><![CDATA[&lt;h1 id=&#34;manage-grafana-advisor-using-the-grafana-cli&#34;&gt;Manage Grafana Advisor using the Grafana CLI&lt;/h1&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;Grafana Advisor performs regular checks on data sources, plugins, and your Grafana instance, but will expand its capabilities in future releases to cover more aspects of your Grafana environment. You can suggest new checks and provide feedback through this &lt;a href=&#34;https://docs.google.com/forms/d/e/1FAIpQLSf8T-xMZauFXZ1uHw09OjZLT_AaiY-cl-hJGwC6Krkj0ThmZQ/viewform&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;form&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;grafanactl&lt;/code&gt;, the Grafana CLI tool, is a command-line tool for managing Grafana resources as code. To install and configure it, refer to the 
    &lt;a href=&#34;/docs/grafana/v13.0/as-code/observability-as-code/grafana-cli/&#34;&gt;Grafana CLI documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can use &lt;code&gt;grafanactl&lt;/code&gt; to manage Advisor &lt;code&gt;checks&lt;/code&gt; and &lt;code&gt;checktypes&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;get-the-list-of-checks&#34;&gt;Get the list of checks&lt;/h2&gt;
&lt;p&gt;To get the list of checks, run:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks -o wide&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For a more detailed view, you can get the list of elements checked and failing inspecting the JSON output:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks -o json | jq -r &amp;#39;
  [&amp;#34;TYPE&amp;#34;,&amp;#34;CHECKED&amp;#34;,&amp;#34;FAILURES&amp;#34;],
  (
    [.items[] | {
      type: .metadata.labels[&amp;#34;advisor.grafana.app/type&amp;#34;],
      ts: .metadata.creationTimestamp,
      count: (.status.report.count // 0),
      failures: ((.status.report.failures // []) | length)
    }]
    | group_by(.type)
    | map(sort_by(.ts) | last)
    | sort_by(.type)
    | .[]
    | [.type, (.count | tostring), (.failures | tostring)]
  )
  | @tsv
&amp;#39; | column -t -s $&amp;#39;\t&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;get-the-list-of-check-types&#34;&gt;Get the list of check types&lt;/h2&gt;
&lt;p&gt;To get the list of check types:&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;Bash&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-bash&#34;&gt;grafanactl resources get checktypes -o wide&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;show-all-failures-across-every-check-type&#34;&gt;Show all failures across every check type&lt;/h2&gt;
&lt;p&gt;To see all failures in your instance:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks -o json | jq -r &amp;#39;
  [&amp;#34;SEVERITY&amp;#34;,&amp;#34;ITEM&amp;#34;,&amp;#34;RULE&amp;#34;,&amp;#34;TYPE&amp;#34;],
  (
    [.items[] | {
      type: .metadata.labels[&amp;#34;advisor.grafana.app/type&amp;#34;],
      ts: .metadata.creationTimestamp,
      failures: (.status.report.failures // [])
    }]
    | group_by(.type)
    | map(sort_by(.ts) | last)
    | map(select((.failures | length) &amp;gt; 0))
    | .[]
    | .type as $t
    | .failures[]
    | [.severity, .item, .stepID, $t]
  )
  | @tsv
&amp;#39; | column -t -s $&amp;#39;\t&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;run-checks-for-a-type&#34;&gt;Run checks for a type&lt;/h2&gt;
&lt;p&gt;To run checks for a specific type, create the check resource and push it:&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;Bash&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-bash&#34;&gt;mkdir -p resources/Check/
echo &amp;#39;{
  &amp;#34;kind&amp;#34;:&amp;#34;Check&amp;#34;,
  &amp;#34;metadata&amp;#34;:{
    &amp;#34;name&amp;#34;:&amp;#34;check-manual&amp;#34;,
    &amp;#34;labels&amp;#34;:{&amp;#34;advisor.grafana.app/type&amp;#34;:&amp;#34;datasource&amp;#34;}, # Replace with the check type you want to run
    &amp;#34;namespace&amp;#34;:&amp;#34;&amp;lt;namespace&amp;gt;&amp;#34; # Replace with the namespace of your Grafana instance or &amp;#34;default&amp;#34; for on-premise
  },
  &amp;#34;apiVersion&amp;#34;:&amp;#34;advisor.grafana.app/v0alpha1&amp;#34;,
  &amp;#34;spec&amp;#34;:{&amp;#34;data&amp;#34;:{}},
  &amp;#34;status&amp;#34;:{
    &amp;#34;report&amp;#34;:{
      &amp;#34;count&amp;#34;:0,
      &amp;#34;failures&amp;#34;:[]
    }
  }
}&amp;#39; &amp;gt; resources/Check/check-manual.json
grafanactl push checks/check-manual&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Next, wait for the check to run and the results to be available:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks/check-manual -o json | jq &amp;#39;.status.report&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;get-plugins-that-need-an-update&#34;&gt;Get plugins that need an update&lt;/h2&gt;
&lt;p&gt;To identify the plugins that need an update:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks -o json | jq -r &amp;#39;
  [&amp;#34;PLUGIN&amp;#34;,&amp;#34;SEVERITY&amp;#34;,&amp;#34;PLUGIN PATH&amp;#34;],
  (
    [.items[] | select(.metadata.labels[&amp;#34;advisor.grafana.app/type&amp;#34;] == &amp;#34;plugin&amp;#34;)]
    | sort_by(.metadata.creationTimestamp) | last
    | .status.report.failures[]?
    | select(.stepID == &amp;#34;update&amp;#34;)
    | [.item, .severity, (.links[0].url // &amp;#34;-&amp;#34;)]
  )
  | @tsv
&amp;#39; | column -t -s $&amp;#39;\t&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;unhealthy-data-sources&#34;&gt;Unhealthy data sources&lt;/h2&gt;
&lt;p&gt;To look for unhealthy data sources:&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;Bash&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-bash&#34;&gt;grafanactl resources get checks -o json | jq -r &amp;#39;
  [&amp;#34;DATASOURCE&amp;#34;,&amp;#34;SEVERITY&amp;#34;,&amp;#34;DATASOURCE PATH&amp;#34;],
  (
    [.items[] | select(.metadata.labels[&amp;#34;advisor.grafana.app/type&amp;#34;] == &amp;#34;datasource&amp;#34;)]
    | sort_by(.metadata.creationTimestamp) | last
    | .status.report.failures[]?
    | select(.stepID == &amp;#34;health-check&amp;#34;)
    | [.item, .severity, (.links[0].url // &amp;#34;-&amp;#34;)]
  )
  | @tsv
&amp;#39; | column -t -s $&amp;#39;\t&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="manage-grafana-advisor-using-the-grafana-cli">Manage Grafana Advisor using the Grafana CLI&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Grafana Advisor performs regular checks on data sources, plugins, and your Grafana instance, but will expand its capabilities in future releases to cover more aspects of your Grafana environment. You can suggest new checks and provide feedback through this &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSf8T-xMZauFXZ1uHw09OjZLT_AaiY-cl-hJGwC6Krkj0ThmZQ/viewform" target="_blank" rel="noopener noreferrer">form&lt;/a>.&lt;/p></description></item><item><title>Create an alert based on Grafana Advisor results</title><link>https://grafana.com/docs/grafana/v13.0/administration/grafana-advisor/advisor-create-alert/</link><pubDate>Tue, 14 Apr 2026 09:48:24 +0000</pubDate><guid>https://grafana.com/docs/grafana/v13.0/administration/grafana-advisor/advisor-create-alert/</guid><content><![CDATA[&lt;h1 id=&#34;create-an-alert-based-on-grafana-advisor-results&#34;&gt;Create an alert based on Grafana Advisor results&lt;/h1&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;Grafana Advisor performs regular checks on data sources, plugins, and your Grafana instance, but will expand its capabilities in future releases to cover more aspects of your Grafana environment. You can suggest new checks and provide feedback through this &lt;a href=&#34;https://docs.google.com/forms/d/e/1FAIpQLSf8T-xMZauFXZ1uHw09OjZLT_AaiY-cl-hJGwC6Krkj0ThmZQ/viewform&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;form&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This guide walks you through creating a Grafana alert that monitors Advisor check results and triggers when failures are detected.&lt;/p&gt;
&lt;p&gt;Follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#create-a-service-account-and-token&#34;&gt;Create a service account and token&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#set-up-the-grafana-infinity-data-source&#34;&gt;Set up the Grafana Infinity data source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#create-the-alert-rule&#34;&gt;Create the alert rule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#save-the-alert-rule&#34;&gt;Save the alert rule&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;create-a-service-account-and-token&#34;&gt;Create a service account and token&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Administration → Users and access → Service accounts&lt;/strong&gt; in your Grafana instance&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add service account&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Provide a name (for example, &amp;ldquo;advisor-alert-service-account&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;Set the role to &lt;strong&gt;Admin&lt;/strong&gt; to ensure proper permissions&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;In the service account details, click &lt;strong&gt;Add service account token&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Provide a token name and set an appropriate expiration date&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate token&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&#34;admonition admonition-caution&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Caution&lt;/p&gt;&lt;p&gt;Copy the token value immediately and store it securely - you won&amp;rsquo;t be able to see it again.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;set-up-the-grafana-infinity-data-source&#34;&gt;Set up the Grafana Infinity data source&lt;/h2&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 Infinity plugin v3.3.0 or higher for the JQ parser used later.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Connections → Add new connection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for &amp;ldquo;Infinity&amp;rdquo;&lt;/li&gt;
&lt;li&gt;If not installed, click &lt;strong&gt;Install&lt;/strong&gt;. Wait for the plugin to be installed.&lt;/li&gt;
&lt;li&gt;From the plugin page, click &lt;strong&gt;Add new data source&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Configure the data source:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: Give it a descriptive name (e.g., &amp;ldquo;Advisor API&amp;rdquo;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Setup Authentication&lt;/strong&gt;: In the &lt;strong&gt;Auth type&lt;/strong&gt;, select &lt;strong&gt;Bearer Token&lt;/strong&gt;. In the &lt;strong&gt;Auth details&lt;/strong&gt; section, paste the service account token from Step 1 and in the &lt;strong&gt;Allowed hosts&lt;/strong&gt; section, write your Grafana app URL and click the &amp;ldquo;Add&amp;rdquo; button (e.g., &lt;code&gt;https://your-grafana-host.com&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt; to verify the connection&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;create-the-alert-rule&#34;&gt;Create the alert rule&lt;/h2&gt;
&lt;p&gt;Now you have everything you need to create an alert based on Advisor results.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Alerting → Alert rules&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New alert rule&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Provide a rule name (e.g., &amp;ldquo;Advisor Failures Alert&amp;rdquo;)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-the-query&#34;&gt;Configure the query&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data source&lt;/strong&gt;: Select the Infinity data source created in Step 3&lt;/li&gt;
&lt;li&gt;Configure the query settings:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Type&lt;/strong&gt;: JSON&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parser&lt;/strong&gt;: JQ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: URL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Format&lt;/strong&gt;: Table&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Method&lt;/strong&gt;: GET&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URL&lt;/strong&gt;: Get this from the Advisor interface:
&lt;ul&gt;
&lt;li&gt;Visit the Advisor in your Grafana instance&lt;/li&gt;
&lt;li&gt;Open browser Developer Tools (F12) → Network tab&lt;/li&gt;
&lt;li&gt;Look for a request ending with &lt;code&gt;/checks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy the full URL (format: &lt;code&gt;https://&amp;lt;your_grafana_host&amp;gt;/apis/advisor.grafana.app/v0alpha1/namespaces/&amp;lt;your_namespace&amp;gt;/checks&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-parsing-options&#34;&gt;Configure parsing options&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Rows/Root&lt;/strong&gt; (paste this JQ expression):&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;jq&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-jq&#34;&gt;.items | map({
  type: .metadata.labels[&amp;#34;advisor.grafana.app/type&amp;#34;],
  creationTimestamp: .metadata.creationTimestamp,
  failuresCount: (.status.report.failures | length)
}) | group_by(.type) | map(sort_by(.creationTimestamp) | last)&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This JQ query processes Grafana Advisor check data to get the most recent result for each check type. It transforms each check into a simplified object with type, timestamp, and failure count.
The result is a clean array showing the current state of each check type (data source, plugin, configuration, etc.) with their failure counts, perfect for alerting when any type has failures &amp;gt; 0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Columns&lt;/strong&gt; (add these three columns):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Selector&lt;/strong&gt;: &lt;code&gt;creationTimestamp&lt;/code&gt;, &lt;strong&gt;Format&lt;/strong&gt;: Time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selector&lt;/strong&gt;: &lt;code&gt;failuresCount&lt;/code&gt;, &lt;strong&gt;Format&lt;/strong&gt;: Number&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selector&lt;/strong&gt;: &lt;code&gt;type&lt;/code&gt;, &lt;strong&gt;Format&lt;/strong&gt;: String&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;optional-filter-by-check-type&#34;&gt;Optional: Filter by check type&lt;/h3&gt;
&lt;p&gt;If you want to alert only for specific check types:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the &lt;strong&gt;Computed columns, Filter, Group by&lt;/strong&gt; section&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;Filter&lt;/strong&gt;: &lt;code&gt;type == &amp;quot;license&amp;quot;&lt;/code&gt; (replace &amp;ldquo;license&amp;rdquo; with your desired check type)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;set-alert-condition&#34;&gt;Set alert condition&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alert condition&lt;/strong&gt;: Select &amp;ldquo;WHEN Last OF QUERY Is above 0&amp;rdquo;&lt;/li&gt;
&lt;li&gt;This will trigger when any check type has failures.&lt;/li&gt;
&lt;li&gt;Click on &amp;ldquo;Preview alert rule condition&amp;rdquo; to see the result of the query.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;complete-alert-configuration&#34;&gt;Complete alert configuration&lt;/h3&gt;
&lt;p&gt;Select your preferred evaluation (for example, every 24 hours) and notification settings.&lt;/p&gt;
&lt;h3 id=&#34;save-the-alert-rule&#34;&gt;Save the alert rule&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Save&lt;/strong&gt; and check the alert is being triggered.&lt;/p&gt;
&lt;p&gt;Your alert is now configured to monitor Advisor results and notify you when failures are detected!&lt;/p&gt;
]]></content><description>&lt;h1 id="create-an-alert-based-on-grafana-advisor-results">Create an alert based on Grafana Advisor results&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Grafana Advisor performs regular checks on data sources, plugins, and your Grafana instance, but will expand its capabilities in future releases to cover more aspects of your Grafana environment. You can suggest new checks and provide feedback through this &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSf8T-xMZauFXZ1uHw09OjZLT_AaiY-cl-hJGwC6Krkj0ThmZQ/viewform" target="_blank" rel="noopener noreferrer">form&lt;/a>.&lt;/p></description></item></channel></rss>