<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Alert rule evaluation on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/</link><description>Recent content in Alert rule evaluation on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/index.xml" rel="self" type="application/rss+xml"/><item><title>No Data and Error states</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/nodata-and-error-states/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/nodata-and-error-states/</guid><content><![CDATA[&lt;h1 id=&#34;no-data-and-error-states&#34;&gt;No Data and Error states&lt;/h1&gt;
&lt;p&gt;Grafana Alerting implements the &lt;strong&gt;No Data&lt;/strong&gt; and &lt;strong&gt;Error&lt;/strong&gt; states to handle common scenarios when evaluating alert rules, and you can modify their behavior.&lt;/p&gt;
&lt;p&gt;An alert instance can transition to these special states:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#no-data-state&#34;&gt;No Data state&lt;/a&gt; occurs when the alert rule query runs successfully but returns no data points.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#error-state&#34;&gt;Error state&lt;/a&gt; occurs when the alert rule fails to evaluate its query or queries successfully.&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;No Data and Error states are supported only for Grafana-managed alert rules.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;For common examples and practical guidance on handling &lt;strong&gt;Error&lt;/strong&gt;, &lt;strong&gt;No Data&lt;/strong&gt;, and &lt;strong&gt;stale&lt;/strong&gt; alert scenarios, refer to the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/connectivity-errors/&#34;&gt;Handle connectivity errors&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/missing-data/&#34;&gt;Handle missing data&lt;/a&gt; guides.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;alert-instance-states&#34;&gt;Alert instance states&lt;/h2&gt;
&lt;p&gt;A Grafana-managed alert instance can be in any of the following states, depending on the outcome of the alert rule evaluation:&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;State&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;Normal&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of an alert when the condition (threshold) is not met.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Pending&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of an alert that has breached the threshold but for less than the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/#pending-period&#34;&gt;pending period&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Alerting&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of an alert that has breached the threshold for longer than the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/#pending-period&#34;&gt;pending period&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Recovering&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of a firing alert when the threshold is no longer breached, but for less than the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/#keep-firing-for&#34;&gt;keep firing for&lt;/a&gt; period.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Error&lt;sup&gt;*&lt;/sup&gt;&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of an alert when an error or timeout occurred evaluating the alert rule. &lt;br/&gt; You can customize the behavior of the &lt;a href=&#34;#error-state&#34;&gt;Error state&lt;/a&gt;, which by default triggers a different alert.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;No Data&lt;sup&gt;*&lt;/sup&gt;&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The state of an alert whose query returns no data or all values are null. &lt;br/&gt; You can customize the behavior of the &lt;a href=&#34;#no-data-state&#34;&gt;No Data state&lt;/a&gt;, which by default triggers a different alert.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#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/alerting/alert-state-diagram2.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/alerting/alert-state-diagram2.png&#34;data-srcset=&#34;/media/docs/alerting/alert-state-diagram2.png?w=320 320w, /media/docs/alerting/alert-state-diagram2.png?w=550 550w, /media/docs/alerting/alert-state-diagram2.png?w=750 750w, /media/docs/alerting/alert-state-diagram2.png?w=900 900w, /media/docs/alerting/alert-state-diagram2.png?w=1040 1040w, /media/docs/alerting/alert-state-diagram2.png?w=1240 1240w, /media/docs/alerting/alert-state-diagram2.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;A diagram of the distinct alert instance states and transitions.&#34;width=&#34;960&#34;height=&#34;540&#34;title=&#34;Alert instance state diagram&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/alert-state-diagram2.png&#34;
            alt=&#34;A diagram of the distinct alert instance states and transitions.&#34;width=&#34;960&#34;height=&#34;540&#34;title=&#34;Alert instance state diagram&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Alert instance state diagram&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;error-state&#34;&gt;&lt;code&gt;Error&lt;/code&gt; state&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Error&lt;/strong&gt; state is triggered when the alert rule fails to evaluate its query or queries successfully.&lt;/p&gt;
&lt;p&gt;This can occur due to evaluation timeouts (default: &lt;code&gt;30s&lt;/code&gt;) or repeated failures (default: &lt;code&gt;3&lt;/code&gt;) when querying the data source. The 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#evaluation_timeout&#34;&gt;&lt;code&gt;evaluation_timeout&lt;/code&gt;&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#max_attempts&#34;&gt;&lt;code&gt;max_attempts&lt;/code&gt;&lt;/a&gt; options control these settings.&lt;/p&gt;
&lt;p&gt;When an alert instance enters the &lt;strong&gt;Error&lt;/strong&gt; state, Grafana, by default, triggers a new &lt;a href=&#34;#no-data-and-error-alerts&#34;&gt;&lt;code&gt;DatasourceError&lt;/code&gt; alert&lt;/a&gt;. You can control this behavior based on the desired outcome of your alert rule in &lt;a href=&#34;#modify-the-no-data-or-error-state&#34;&gt;Modify the &lt;code&gt;No Data&lt;/code&gt; or &lt;code&gt;Error&lt;/code&gt; state&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;no-data-state&#34;&gt;&lt;code&gt;No Data&lt;/code&gt; state&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;No Data&lt;/strong&gt; state occurs when the alert rule query runs successfully but returns no data points at all.&lt;/p&gt;
&lt;p&gt;When an alert instance enters the &lt;strong&gt;No Data&lt;/strong&gt; state, Grafana, by default, triggers a new &lt;a href=&#34;#no-data-and-error-alerts&#34;&gt;&lt;code&gt;DatasourceNoData&lt;/code&gt; alert&lt;/a&gt;. You can control this behavior based on the desired outcome of your alert rule in &lt;a href=&#34;#modify-the-no-data-or-error-state&#34;&gt;Modify the &lt;code&gt;No Data&lt;/code&gt; or &lt;code&gt;Error&lt;/code&gt; state&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;modify-the-no-data-or-error-state&#34;&gt;Modify the &lt;code&gt;No Data&lt;/code&gt; or &lt;code&gt;Error&lt;/code&gt; state&lt;/h2&gt;
&lt;p&gt;These states are supported only for Grafana-managed alert rules.&lt;/p&gt;
&lt;p&gt;In 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/alerting-rules/create-grafana-managed-rule/#configure-no-data-and-error-handling&#34;&gt;Configure no data and error handling&lt;/a&gt;, you can change the default behavior when the evaluation returns no data or an error. You can set the alert instance state to &lt;code&gt;Alerting&lt;/code&gt;, &lt;code&gt;Normal&lt;/code&gt;, &lt;code&gt;Error&lt;/code&gt;, or &lt;code&gt;Keep Last State&lt;/code&gt;.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 500px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link&#34;
        href=&#34;/media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload &#34;
          data-src=&#34;/media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png&#34;data-srcset=&#34;/media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=320 320w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=550 550w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=750 750w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=900 900w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=1040 1040w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=1240 1240w, /media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;A screenshot of the `Configure no data and error handling` option in Grafana Alerting.&#34;width=&#34;477&#34;height=&#34;338&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/alert-rule-configure-no-data-and-error-v2.png&#34;
            alt=&#34;A screenshot of the `Configure no data and error handling` option in Grafana Alerting.&#34;width=&#34;477&#34;height=&#34;338&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;


&lt;div data-shared=&#34;alerts/table-configure-no-data-and-error.md&#34;&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;Configure&lt;/th&gt;
              &lt;th&gt;Set alert state&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;No Data&lt;/td&gt;
              &lt;td&gt;No Data&lt;/td&gt;
              &lt;td&gt;The default option for &lt;strong&gt;No Data&lt;/strong&gt; events.&lt;br/&gt;Sets alert instance state to &lt;code&gt;No Data&lt;/code&gt;. &lt;br/&gt; The alert rule immediately creates a new &lt;code&gt;DatasourceNoData&lt;/code&gt; alert instance after evaluation, with the alert rule&amp;rsquo;s name, UID, and the data source UID as labels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Error&lt;/td&gt;
              &lt;td&gt;Error&lt;/td&gt;
              &lt;td&gt;The default option for &lt;strong&gt;Error&lt;/strong&gt; events.&lt;br/&gt;Sets alert instance state to &lt;code&gt;Error&lt;/code&gt;. &lt;br/&gt; The alert rule immediately creates a new &lt;code&gt;DatasourceError&lt;/code&gt; alert instance after evaluation, with the alert rule&amp;rsquo;s name, UID, and the data source UID as labels.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;No Data or Error&lt;/td&gt;
              &lt;td&gt;Alerting&lt;/td&gt;
              &lt;td&gt;Sets the alert instance state to &lt;code&gt;Pending&lt;/code&gt; and then transitions to &lt;code&gt;Alerting&lt;/code&gt; once the pending period ends. If you sent the pending period to 0, the alert instance state is immediately set to &lt;code&gt;Alerting&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;No Data or Error&lt;/td&gt;
              &lt;td&gt;Normal&lt;/td&gt;
              &lt;td&gt;Sets alert instance state to &lt;code&gt;Normal&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;No Data or Error&lt;/td&gt;
              &lt;td&gt;Keep Last State&lt;/td&gt;
              &lt;td&gt;Maintains the alert instance in its last state. Useful for mitigating temporary issues.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;

        
&lt;p&gt;Note that when you configure the &lt;strong&gt;No Data&lt;/strong&gt; or &lt;strong&gt;Error&lt;/strong&gt; behavior to &lt;code&gt;Alerting&lt;/code&gt; or &lt;code&gt;Normal&lt;/code&gt;, Grafana attempts to keep a stable set of fields under notification &lt;code&gt;Values&lt;/code&gt;. If your query returns no data or an error, Grafana re-uses the latest known set of fields in &lt;code&gt;Values&lt;/code&gt;, but will use &lt;code&gt;-1&lt;/code&gt; in place of the measured value.&lt;/p&gt;
&lt;h3 id=&#34;keep-last-state&#34;&gt;Keep last state&lt;/h3&gt;
&lt;p&gt;The &amp;ldquo;Keep Last State&amp;rdquo; option helps mitigate temporary data source issues, preventing alerts from unintentionally firing, resolving, and re-firing.&lt;/p&gt;
&lt;p&gt;However, in situations where strict monitoring is critical, relying solely on the &amp;ldquo;Keep Last State&amp;rdquo; option may not be appropriate. Instead, consider using an alternative or implementing additional alert rules to ensure that issues with prolonged data source disruptions are detected.&lt;/p&gt;
&lt;h3 id=&#34;no-data-and-error-alerts&#34;&gt;&lt;code&gt;No Data&lt;/code&gt; and &lt;code&gt;Error&lt;/code&gt; alerts&lt;/h3&gt;
&lt;p&gt;When an alert rule evaluation results in a &lt;code&gt;No Data&lt;/code&gt; or &lt;code&gt;Error&lt;/code&gt; state, Grafana Alerting immediately creates a new alert instance —skipping the pending period—with the following additional labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;alertname&lt;/code&gt;: Either &lt;code&gt;DatasourceNoData&lt;/code&gt; or &lt;code&gt;DatasourceError&lt;/code&gt; depending on the state.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;datasource_uid&lt;/code&gt;: The UID of the data source that caused the state.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rulename&lt;/code&gt;: The name of the alert rule that originated the alert.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that &lt;code&gt;DatasourceNoData&lt;/code&gt; and &lt;code&gt;DatasourceError&lt;/code&gt; alert instances are independent from the original alert instance. They have different labels, which means existing silences, mute timings, and notification policies applied to the original alert may not apply to them.&lt;/p&gt;
&lt;p&gt;You can manage these alerts like regular ones by using their labels to apply actions such as adding a silence, routing via notification policies, and more.&lt;/p&gt;
&lt;p&gt;If the alert rule is configured to send notifications directly to a selected contact point (instead of using notification policies), the &lt;code&gt;DatasourceNoData&lt;/code&gt; and &lt;code&gt;DatasourceError&lt;/code&gt; alerts are also sent to that contact point. Any additional notification settings defined in the alert rule, such as muting or grouping, are preserved.&lt;/p&gt;
&lt;h3 id=&#34;reduce-no-data-or-error-alerts&#34;&gt;Reduce &lt;code&gt;No Data&lt;/code&gt; or &lt;code&gt;Error&lt;/code&gt; alerts&lt;/h3&gt;
&lt;p&gt;To minimize the number of &lt;strong&gt;No Data&lt;/strong&gt; or &lt;strong&gt;Error&lt;/strong&gt; state alerts received, try the following.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;strong&gt;Keep last state&lt;/strong&gt; option. For more information, refer to the section below. This option allows the alert to retain its last known state when there is no data available, rather than switching to a &lt;strong&gt;No Data&lt;/strong&gt; state.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For &lt;strong&gt;No Data&lt;/strong&gt; alerts, you can optimize your alert rule by expanding the time range of the query. However, if the time range is too big, it affects the performance of the query and can lead to errors due to timeout.&lt;/p&gt;
&lt;p&gt;To minimize timeouts resulting in the &lt;strong&gt;Error&lt;/strong&gt; state, reduce the time range to request less data every evaluation cycle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To reduce multiple notifications from &lt;strong&gt;Error&lt;/strong&gt; alerts, define a 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/notification-policies/&#34;&gt;notification policy&lt;/a&gt; to handle all related alerts with &lt;code&gt;alertname=DatasourceError&lt;/code&gt;, and filter and group errors from the same data source using the &lt;code&gt;datasource_uid&lt;/code&gt; label.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change the 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#evaluation_timeout&#34;&gt;evaluation timeout&lt;/a&gt; (default: &lt;code&gt;30s&lt;/code&gt;) or the 
    &lt;a href=&#34;/docs/grafana/v12.4/setup-grafana/configure-grafana/#max_attempts&#34;&gt;retry mechanism (&lt;code&gt;max_attempts&lt;/code&gt;)&lt;/a&gt; settings. This should be a last resort, as it can affect the performance of all alert rules and may cause missed evaluations if the timeout is too long. For Grafana Cloud, open a support ticket from the &lt;a href=&#34;/docs/grafana-cloud/account-management/support/#grafana-cloud-support-options&#34;&gt;Cloud Portal&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;For common examples and practical guidance on handling &lt;strong&gt;Error&lt;/strong&gt;, &lt;strong&gt;No Data&lt;/strong&gt;, and &lt;strong&gt;stale&lt;/strong&gt; alert scenarios, refer to the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/connectivity-errors/&#34;&gt;Handle connectivity errors&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/missing-data/&#34;&gt;Handle missing data&lt;/a&gt; guides.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;grafana_state_reason-for-troubleshooting&#34;&gt;&lt;code&gt;grafana_state_reason&lt;/code&gt; for troubleshooting&lt;/h2&gt;
&lt;p&gt;Occasionally, an alert instance may be in a state that isn&amp;rsquo;t immediately clear to everyone. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &amp;ldquo;no data&amp;rdquo; handling is configured to transition to a state other than &lt;code&gt;No Data&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &amp;ldquo;error&amp;rdquo; handling is configured to transition to a state other than &lt;code&gt;Error&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If the alert rule is deleted, paused, or updated in some cases, the alert instance also transitions to the &lt;code&gt;Normal&lt;/code&gt; state.&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/stale-alert-instances/&#34;&gt;Stale alert instances&lt;/a&gt; in the &lt;code&gt;Alerting&lt;/code&gt; state transition to the &lt;code&gt;Normal&lt;/code&gt; state when the series disappear.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In these situations, the evaluation state may differ from the alert state, and it might be necessary to understand the reason for being in that state when receiving the notification.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;grafana_state_reason&lt;/code&gt; annotation is included in these situations, providing the reason that explains why the alert instance transitioned to its current state. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &amp;ldquo;no data&amp;rdquo; or &amp;ldquo;error&amp;rdquo; handling transitions to the &lt;code&gt;Normal&lt;/code&gt; state, the &lt;code&gt;grafana_state_reason&lt;/code&gt; annotation is included with the value &lt;strong&gt;No Data&lt;/strong&gt; or &lt;strong&gt;Error&lt;/strong&gt;, respectively.&lt;/li&gt;
&lt;li&gt;If the alert rule is deleted or paused, the &lt;code&gt;grafana_state_reason&lt;/code&gt; is set to &lt;strong&gt;Paused&lt;/strong&gt; or &lt;strong&gt;RuleDeleted&lt;/strong&gt;. For some updates, it is set to &lt;strong&gt;Updated&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/stale-alert-instances/&#34;&gt;Stale alert instances&lt;/a&gt; in the &lt;code&gt;Normal&lt;/code&gt; state include the &lt;code&gt;grafana_state_reason&lt;/code&gt; annotation with the value &lt;strong&gt;MissingSeries&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="no-data-and-error-states">No Data and Error states&lt;/h1>
&lt;p>Grafana Alerting implements the &lt;strong>No Data&lt;/strong> and &lt;strong>Error&lt;/strong> states to handle common scenarios when evaluating alert rules, and you can modify their behavior.&lt;/p></description></item><item><title>Stale alert instances</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/stale-alert-instances/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/stale-alert-instances/</guid><content><![CDATA[&lt;h1 id=&#34;stale-alert-instances&#34;&gt;Stale alert instances&lt;/h1&gt;
&lt;p&gt;An alert instance is considered &lt;strong&gt;stale&lt;/strong&gt; if the alert rule query returns data but its dimension (or series) has disappeared for a number of consecutive evaluation intervals (2 by default).&lt;/p&gt;
&lt;p&gt;This is different from the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/nodata-and-error-states/#no-data-state&#34;&gt;&lt;strong&gt;No Data&lt;/strong&gt; state&lt;/a&gt;, which occurs when the alert rule query runs successfully but returns no dimensions (or series) at all.&lt;/p&gt;
&lt;p&gt;A stale alert instance transitions to the &lt;strong&gt;Normal (MissingSeries)&lt;/strong&gt; state as &lt;strong&gt;Resolved&lt;/strong&gt;, and is then evicted:&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 style=&#34;text-align: left&#34;&gt;Eval. Interval&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;1&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;2&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;3&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;4&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Alert instance A&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;✔&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;✔&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;✔&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;✔&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Alert instance B&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;✔&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;MissingSeries&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;️&lt;code&gt;Normal(MissingSeries)&lt;/code&gt; 📩&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&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;Stale alert instances are supported only for Grafana-managed alert rules.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;how-grafana-handles-stale-alert-instances&#34;&gt;How Grafana handles stale alert instances&lt;/h2&gt;
&lt;p&gt;The process for handling stale alert instances is as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The alert rule runs and returns data for some label sets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;An alert instance that previously existed is now missing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Grafana keeps the previous state of the alert instance for the number of evaluation intervals specified in &lt;a href=&#34;#configure-missing-series-evaluations-to-resolve&#34;&gt;Missing series evaluations to resolve&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it remains missing after the specified number of evaluation intervals (2 by default), it transitions to the &lt;strong&gt;Normal&lt;/strong&gt; state and sets &lt;strong&gt;MissingSeries&lt;/strong&gt; in the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/nodata-and-error-states/#grafana_state_reason-for-troubleshooting&#34;&gt;&lt;code&gt;grafana_state_reason&lt;/code&gt; annotation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Stale alert instances in the &lt;strong&gt;Alerting&lt;/strong&gt;, &lt;strong&gt;No Data&lt;/strong&gt;, or &lt;strong&gt;Error&lt;/strong&gt; states transition to the &lt;strong&gt;Normal&lt;/strong&gt; state as &lt;strong&gt;Resolved&lt;/strong&gt;, and are routed for notifications like other resolved alerts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The alert instance is removed from the UI.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&#34;admonition admonition-tip&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Tip&lt;/p&gt;&lt;p&gt;For common examples and practical guidance on handling &lt;strong&gt;No Data&lt;/strong&gt; and &lt;strong&gt;stale&lt;/strong&gt; alert scenarios, see 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/missing-data/&#34;&gt;Handling missing data&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;configure-missing-series-evaluations-to-resolve&#34;&gt;Configure Missing series evaluations to resolve&lt;/h2&gt;
&lt;p&gt;In 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/alerting-rules/create-grafana-managed-rule/#configure-no-data-and-error-handling&#34;&gt;Configure no data and error handling &amp;gt; Missing series evaluations to resolve&lt;/a&gt;, you can set how many consecutive evaluation intervals must pass without data for a given dimension before the alert instance is marked as stale and resolved.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t specify a value, Grafana uses the &lt;strong&gt;default of 2 evaluation intervals&lt;/strong&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="stale-alert-instances">Stale alert instances&lt;/h1>
&lt;p>An alert instance is considered &lt;strong>stale&lt;/strong> if the alert rule query returns data but its dimension (or series) has disappeared for a number of consecutive evaluation intervals (2 by default).&lt;/p></description></item><item><title>Alert rule state and health</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/alert-rule-state-and-health/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/alert-rule-state-and-health/</guid><content><![CDATA[&lt;h1 id=&#34;alert-rule-state-and-health&#34;&gt;Alert rule state and health&lt;/h1&gt;
&lt;p&gt;Each alert rule can generate one or more alert instances—one alert instance for each series or dimension, as shown in the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/best-practices/multi-dimensional-alerts/&#34;&gt;multi-dimensional alert example&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Each alert instance of the same alert rule represents a different target and can be in a different state; for example, one alert instance may be &lt;strong&gt;Normal&lt;/strong&gt; while another is &lt;strong&gt;Alerting&lt;/strong&gt;.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link&#34;
        href=&#34;/media/docs/alerting/alert-rule-example-multiple-alert-instances.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload &#34;
          data-src=&#34;/media/docs/alerting/alert-rule-example-multiple-alert-instances.png&#34;data-srcset=&#34;/media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=320 320w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=550 550w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=750 750w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=900 900w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=1040 1040w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=1240 1240w, /media/docs/alerting/alert-rule-example-multiple-alert-instances.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Multi dimensional alert rule. The alert rule state and alert rule health are determined by the state of the alert instances.&#34;width=&#34;2582&#34;height=&#34;900&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/alert-rule-example-multiple-alert-instances.png&#34;
            alt=&#34;Multi dimensional alert rule. The alert rule state and alert rule health are determined by the state of the alert instances.&#34;width=&#34;2582&#34;height=&#34;900&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The alert rule state and alert rule health are determined by the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/nodata-and-error-states/#alert-instance-states&#34;&gt;state of the alert instances&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;alert-rule-states&#34;&gt;Alert rule states&lt;/h2&gt;
&lt;p&gt;An alert rule can be in either of the following states:&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;State&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;Normal&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;None of the alert instances returned by the evaluation engine is in a &lt;code&gt;Pending&lt;/code&gt; or &lt;code&gt;Alerting&lt;/code&gt; state.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Pending&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;At least one alert instances returned by the evaluation engine is &lt;code&gt;Pending&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Firing&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;At least one alert instances returned by the evaluation engine is &lt;code&gt;Alerting&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;alert-rule-health&#34;&gt;Alert rule health&lt;/h2&gt;
&lt;p&gt;An alert rule can have one of the following health statuses:&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;State&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;Ok&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;No error when evaluating the alert rule.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Error&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;An error occurred when evaluating the alert rule.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;No Data&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The alert rule query returns no data.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;{status}, KeepLast&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The rule would have received another status but was configured to keep the last state of the alert rule.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="alert-rule-state-and-health">Alert rule state and health&lt;/h1>
&lt;p>Each alert rule can generate one or more alert instances—one alert instance for each series or dimension, as shown in the
&lt;a href="/docs/grafana/v12.4/alerting/best-practices/multi-dimensional-alerts/">multi-dimensional alert example&lt;/a>.&lt;/p></description></item><item><title>How rules are evaluated within a group</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/evaluation-within-a-group/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/alert-rule-evaluation/evaluation-within-a-group/</guid><content><![CDATA[&lt;h1 id=&#34;how-rules-are-evaluated-within-a-group&#34;&gt;How rules are evaluated within a group&lt;/h1&gt;
&lt;p&gt;Each evaluation group contains an &lt;strong&gt;evaluation interval&lt;/strong&gt; that determines how frequently the rule is evaluated. For instance, the evaluation may occur every &lt;code&gt;10s&lt;/code&gt;, &lt;code&gt;30s&lt;/code&gt;, &lt;code&gt;1m&lt;/code&gt;, &lt;code&gt;10m&lt;/code&gt;, etc.&lt;/p&gt;
&lt;p&gt;Rules in different evaluation groups can be evaluated simultaneously.&lt;/p&gt;
&lt;p&gt;Rules within the same evaluation group can be evaluated simultaneously or sequentially, depending on the rule type:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Grafana-managed&lt;/strong&gt; rules within the same group are evaluated concurrently—they are evaluated at different times over the same evaluation interval but display the same evaluation timestamp.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data source-managed&lt;/strong&gt; rules within the same group are evaluated sequentially, one after the other—this is useful to ensure that recording rules are evaluated before alert rules.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Grafana-managed rules 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/alerting-rules/alerting-migration/&#34;&gt;imported from data source-managed rules&lt;/a&gt;&lt;/strong&gt; are also evaluated sequentially.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="how-rules-are-evaluated-within-a-group">How rules are evaluated within a group&lt;/h1>
&lt;p>Each evaluation group contains an &lt;strong>evaluation interval&lt;/strong> that determines how frequently the rule is evaluated. For instance, the evaluation may occur every &lt;code>10s&lt;/code>, &lt;code>30s&lt;/code>, &lt;code>1m&lt;/code>, &lt;code>10m&lt;/code>, etc.&lt;/p></description></item></channel></rss>