<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Notifications on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/</link><description>Recent content in Notifications on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/alerting/fundamentals/notifications/index.xml" rel="self" type="application/rss+xml"/><item><title>Contact points</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/contact-points/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/contact-points/</guid><content><![CDATA[&lt;h1 id=&#34;contact-points&#34;&gt;Contact points&lt;/h1&gt;
&lt;p&gt;Contact points contain the configuration for sending alert notifications. You can assign a contact point either in the alert rule or notification policy options.&lt;/p&gt;
&lt;p&gt;A contact point includes one or more contact point integrations for sending alert notifications, such as:&lt;/p&gt;
&lt;div class=&#34;column-list&#34;&gt;
  &lt;ul&gt;
&lt;li&gt;Alertmanager&lt;/li&gt;
&lt;li&gt;Amazon SNS&lt;/li&gt;
&lt;li&gt;Cisco Webex Teams&lt;/li&gt;
&lt;li&gt;DingDing&lt;/li&gt;
&lt;li&gt;Discord&lt;/li&gt;
&lt;li&gt;Email&lt;/li&gt;
&lt;li&gt;Google Chat&lt;/li&gt;
&lt;li&gt;Grafana IRM&lt;/li&gt;
&lt;li&gt;Jira&lt;/li&gt;
&lt;li&gt;Kafka REST Proxy&lt;/li&gt;
&lt;li&gt;Line&lt;/li&gt;
&lt;li&gt;Microsoft Teams&lt;/li&gt;
&lt;li&gt;MQTT&lt;/li&gt;
&lt;li&gt;Opsgenie&lt;/li&gt;
&lt;li&gt;PagerDuty&lt;/li&gt;
&lt;li&gt;Pushover&lt;/li&gt;
&lt;li&gt;Sensu Go&lt;/li&gt;
&lt;li&gt;Slack&lt;/li&gt;
&lt;li&gt;Telegram&lt;/li&gt;
&lt;li&gt;Threema Gateway&lt;/li&gt;
&lt;li&gt;VictorOps&lt;/li&gt;
&lt;li&gt;Webhook&lt;/li&gt;
&lt;li&gt;WeCom&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;p&gt;For example, a contact point could contain a PagerDuty integration; an email and Slack integration; or a PagerDuty integration, a Slack integration, and two email integrations. You can also configure a contact point with no integrations; in which case no notifications are sent.&lt;/p&gt;
&lt;p&gt;Each contact point integration can also define the notification message to be sent, which can use the predefined message, a custom message, or notification templates.&lt;/p&gt;
&lt;p&gt;For a complete list of supported integrations and more details about contact points, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/configure-notifications/manage-contact-points/&#34;&gt;Configure contact points&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="contact-points">Contact points&lt;/h1>
&lt;p>Contact points contain the configuration for sending alert notifications. You can assign a contact point either in the alert rule or notification policy options.&lt;/p></description></item><item><title>Notification policies</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/notification-policies/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/notification-policies/</guid><content><![CDATA[&lt;h1 id=&#34;notification-policies&#34;&gt;Notification policies&lt;/h1&gt;
&lt;p&gt;Notification policies provide you with a flexible way of designing how to handle notifications and minimize alert noise.&lt;/p&gt;
&lt;p&gt;Using label matchers, alert instances are &lt;a href=&#34;#routing&#34;&gt;routed to notification policies&lt;/a&gt;. The notification policy can then 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/&#34;&gt;group multiple alert instances into a single notification&lt;/a&gt; and deliver it to the contact point.&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/how-alerting-works.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/how-alerting-works.png&#34;data-srcset=&#34;/media/docs/alerting/how-alerting-works.png?w=320 320w, /media/docs/alerting/how-alerting-works.png?w=550 550w, /media/docs/alerting/how-alerting-works.png?w=750 750w, /media/docs/alerting/how-alerting-works.png?w=900 900w, /media/docs/alerting/how-alerting-works.png?w=1040 1040w, /media/docs/alerting/how-alerting-works.png?w=1240 1240w, /media/docs/alerting/how-alerting-works.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;How Alerting works&#34;width=&#34;1340&#34;height=&#34;506&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/how-alerting-works.png&#34;
            alt=&#34;How Alerting works&#34;width=&#34;1340&#34;height=&#34;506&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Notification policies are &lt;em&gt;not&lt;/em&gt; a list, but rather are structured according to a &lt;a href=&#34;https://en.wikipedia.org/wiki/Tree_structure&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;tree structure&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The root of the notification policy tree is the &lt;strong&gt;Default notification policy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Each policy can have child policies.&lt;/li&gt;
&lt;li&gt;Each policy can have sibling policies, sharing the same parent and hierarchical level.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each policy consists of a set of label matchers (0 or more) that specify which alerts they are or aren&amp;rsquo;t interested in handling. A matching policy refers to a notification policy with label matchers that match the alert instance’s labels.&lt;/p&gt;
&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;How label matching works&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;&lt;p&gt;Use 

&lt;a href=&#34;/404/&#34;&gt;labels&lt;/a&gt; and label matchers to link alert rules to 

&lt;a href=&#34;/404/&#34;&gt;notification policies&lt;/a&gt; and 

&lt;a href=&#34;/404/&#34;&gt;silences&lt;/a&gt;. This allows for a flexible way to manage your alert instances, specify which policy should handle them, and which alerts to silence.&lt;/p&gt;
&lt;p&gt;A label matchers consists of 3 distinct parts, the &lt;strong&gt;label&lt;/strong&gt;, the &lt;strong&gt;value&lt;/strong&gt; and the &lt;strong&gt;operator&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;Label&lt;/strong&gt; field is the name of the label to match. It must exactly match the label name.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;Value&lt;/strong&gt; field matches against the corresponding value for the specified &lt;strong&gt;Label&lt;/strong&gt; name. How it matches depends on the &lt;strong&gt;Operator&lt;/strong&gt; value.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;Operator&lt;/strong&gt; field is the operator to match against the label value. The available operators are:&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;Select labels that are exactly equal to 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;Select labels that are not equal to 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;Select labels that regex-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;Select labels that do not regex-match the value.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&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;If you are using multiple label matchers, they are combined using the AND logical operator. This means that all matchers must match in order to link a rule to a policy.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Label matching example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you define the following set of labels for your alert:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{ foo=bar, baz=qux, id=12 }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A label matcher defined as &lt;code&gt;foo=bar&lt;/code&gt; matches this alert rule.&lt;/li&gt;
&lt;li&gt;A label matcher defined as &lt;code&gt;foo!=bar&lt;/code&gt; does &lt;em&gt;not&lt;/em&gt; match this alert rule.&lt;/li&gt;
&lt;li&gt;A label matcher defined as &lt;code&gt;id=~[0-9]&#43;&lt;/code&gt; matches this alert rule.&lt;/li&gt;
&lt;li&gt;A label matcher defined as &lt;code&gt;baz!~[0-9]&#43;&lt;/code&gt; matches this alert rule.&lt;/li&gt;
&lt;li&gt;Two label matchers defined as &lt;code&gt;foo=bar&lt;/code&gt; and &lt;code&gt;id=~[0-9]&#43;&lt;/code&gt; match this alert rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Exclude labels&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can also write label matchers to exclude labels.&lt;/p&gt;
&lt;p&gt;Here is an example that shows how to exclude the label &lt;code&gt;Team&lt;/code&gt;. You can choose between any of the values below to exclude labels.&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;Label&lt;/th&gt;
              &lt;th&gt;Operator&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;=&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;!~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;.&#43;&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;=~&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;^$&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&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/notification-routing.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/notification-routing.png&#34;data-srcset=&#34;/media/docs/alerting/notification-routing.png?w=320 320w, /media/docs/alerting/notification-routing.png?w=550 550w, /media/docs/alerting/notification-routing.png?w=750 750w, /media/docs/alerting/notification-routing.png?w=900 900w, /media/docs/alerting/notification-routing.png?w=1040 1040w, /media/docs/alerting/notification-routing.png?w=1240 1240w, /media/docs/alerting/notification-routing.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Example of a notification policy tree&#34;width=&#34;1598&#34;height=&#34;968&#34;title=&#34;Matching alert instances with notification policies&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/notification-routing.png&#34;
            alt=&#34;Example of a notification policy tree&#34;width=&#34;1598&#34;height=&#34;968&#34;title=&#34;Matching alert instances with notification policies&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Matching alert instances with notification policies&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&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 a practical example of routing with notification policies, refer to our &lt;a href=&#34;/tutorials/alerting-get-started-pt2/&#34;&gt;Getting Started with Alert Instances and Notification Routing tutorial&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;routing&#34;&gt;Routing&lt;/h2&gt;
&lt;p&gt;To determine which notification policies handle an alert instance, the system looks for matching policies starting from the top of the tree—beginning with the default notification policy.&lt;/p&gt;
&lt;p&gt;If a matching policy is found, the system continues to evaluate its child policies in the order they are displayed. If a child policy matches the alert, the system then evaluates its child policies recursively until no more matching child policies are found. In this case, only the deepest matching child policy handles the alert instance.&lt;/p&gt;
&lt;p&gt;By default, once a matching policy is found, the system does not continue to look for sibling policies. If you want sibling policies of one matching policy to handle the alert instance as well, then enable &lt;strong&gt;Continue matching siblings&lt;/strong&gt; on the particular matching policy.&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 notification policy matches all alert instances. It always handles alert instances if there are no child policies or if none of the child policies match the alert instance&amp;rsquo;s labels—this prevents any alerts from being missed.&lt;/p&gt;
&lt;p&gt;If alerts use multiple labels, these labels must also be present in a notification policy to match and route notifications to a specific contact point.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;div class=&#34;collapse&#34; x-data=&#34;app_collapse()&#34;&gt;
  &lt;button class=&#34;collapse-trigger&#34; @click=&#34;toggle()&#34;&gt;
    &lt;span class=&#34;body-large&#34;&gt;Routing example&lt;/span&gt;
    &lt;span class=&#34;collapse-trigger__icon&#34; :class=&#34;{ &#39;collapse-trigger__icon-open&#39; : open }&#34;&gt;
      
  &lt;svg width=&#34;27&#34; height=&#34;26&#34; viewBox=&#34;0 0 27 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
&lt;path opacity=&#34;0.2&#34; d=&#34;M1.73047 12.8359C1.73047 19.4634 7.10305 24.8359 13.7305 24.8359C20.3579 24.8359 25.7305 19.4634 25.7305 12.8359C25.7305 6.20852 20.3579 0.835937 13.7305 0.835937C7.10305 0.835937 1.73047 6.20852 1.73047 12.8359Z&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M18.2344 12.8359L9.23438 12.8359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;path d=&#34;M13.7344 8.33594L13.7344 17.3359&#34; stroke=&#34;black&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;


    &lt;/span&gt;
  &lt;/button&gt;
  &lt;div class=&#34;collapse-content&#34; x-ref=&#34;content&#34; hidden=&#34;until-found&#34;&gt;
    &lt;div class=&#34;collapse-content__inner&#34; x-ref=&#34;content-inner&#34;&gt;&lt;p&gt;Here&amp;rsquo;s a breakdown of the previous example:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pod stuck in CrashLoop&lt;/strong&gt; does not have a &lt;code&gt;severity&lt;/code&gt; label, so none of its child policies are matched. It does have a &lt;code&gt;team=operations&lt;/code&gt; label, so the first policy is matched.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;team=security&lt;/code&gt; policy is not a match and &lt;strong&gt;Continue matching siblings&lt;/strong&gt; was not configured for that policy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disk Usage – 80%&lt;/strong&gt; has both a &lt;code&gt;team&lt;/code&gt; and &lt;code&gt;severity&lt;/code&gt; label, and matches a child policy of the operations team.&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;When an alert matches both a parent policy and a child policy (like it does in this case), the routing follows the child policy (&lt;code&gt;severity&lt;/code&gt;) as it provides a more specific match.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Unauthorized log entry&lt;/strong&gt; has a &lt;code&gt;team&lt;/code&gt; label but does not match the first policy (&lt;code&gt;team=operations&lt;/code&gt;) since the values are not the same, so it will continue searching and match the &lt;code&gt;team=security&lt;/code&gt; policy. It does not have any child policies, so the additional &lt;code&gt;severity=high&lt;/code&gt; label is ignored.&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This routing and tree structure makes it convenient to organize and handle alerts for dedicated teams, while also narrowing down specific cases within the team by applying additional labels.&lt;/p&gt;
&lt;h2 id=&#34;inheritance&#34;&gt;Inheritance&lt;/h2&gt;
&lt;p&gt;In addition to child policies being a useful concept for routing alert instances, they also inherit properties from their parent policy. This also applies to child policies of the default notification policy.&lt;/p&gt;
&lt;p&gt;By default, a child policy inherits the following notification properties from its parent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/contact-points/&#34;&gt;Contact point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/&#34;&gt;Grouping options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/#timing-options&#34;&gt;Timing options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then, each policy can overwrite these properties if needed.&lt;/p&gt;
&lt;p&gt;The inheritance of notification properties, together with the routing process, is an effective method for grouping related notifications and handling specific cases through child policies.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Inheritance example&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/notification-inheritance.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/notification-inheritance.png&#34;data-srcset=&#34;/media/docs/alerting/notification-inheritance.png?w=320 320w, /media/docs/alerting/notification-inheritance.png?w=550 550w, /media/docs/alerting/notification-inheritance.png?w=750 750w, /media/docs/alerting/notification-inheritance.png?w=900 900w, /media/docs/alerting/notification-inheritance.png?w=1040 1040w, /media/docs/alerting/notification-inheritance.png?w=1240 1240w, /media/docs/alerting/notification-inheritance.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Simple example inhering notification settings&#34;width=&#34;1518&#34;height=&#34;828&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/notification-inheritance.png&#34;
            alt=&#34;Simple example inhering notification settings&#34;width=&#34;1518&#34;height=&#34;828&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;This example shows how the notification policy tree from the previous example allows the child policies of the &lt;code&gt;team=operations&lt;/code&gt; to inherit its contact point. In this way, you can avoid specifying the same contact point multiple times for each child policy.&lt;/p&gt;
]]></content><description>&lt;h1 id="notification-policies">Notification policies&lt;/h1>
&lt;p>Notification policies provide you with a flexible way of designing how to handle notifications and minimize alert noise.&lt;/p>
&lt;p>Using label matchers, alert instances are &lt;a href="#routing">routed to notification policies&lt;/a>. The notification policy can then
&lt;a href="/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/">group multiple alert instances into a single notification&lt;/a> and deliver it to the contact point.&lt;/p></description></item><item><title>Group alert notifications</title><link>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/alerting/fundamentals/notifications/group-alert-notifications/</guid><content><![CDATA[&lt;h1 id=&#34;group-alert-notifications&#34;&gt;Group alert notifications&lt;/h1&gt;
&lt;p&gt;Grouping in Grafana Alerting allows you to batch relevant alerts together into a smaller number of notifications. This is particularly important if notifications are delivered to first-responders, such as engineers on-call, where receiving lots of notifications in a short period of time can be overwhelming. In some cases, it can negatively impact a first-responders ability to respond to an incident. For example, consider a large outage where many of your systems are down. In this case, grouping can be the difference between receiving 1 phone call and 100 phone calls.&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 a practical example of grouping, refer to our &lt;a href=&#34;/tutorials/alerting-get-started-pt3/&#34;&gt;Getting Started with Grouping tutorial&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;group-notifications&#34;&gt;Group notifications&lt;/h2&gt;
&lt;p&gt;Grouping combines similar alert instances within a specific period into a single notification, reducing alert noise.&lt;/p&gt;
&lt;p&gt;In the 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/fundamentals/notifications/notification-policies/&#34;&gt;notification policy&lt;/a&gt;, you can configure how to group multiple alerts into a single notification:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;Group by&lt;/code&gt; option specifies the criteria for grouping incoming alerts within the policy. The default is by alert rule.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#timing-options&#34;&gt;Timing options&lt;/a&gt; determine when and how often to send the notification.&lt;/li&gt;
&lt;/ul&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/alerting-notification-policy-diagram-with-labels-v3.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/alerting-notification-policy-diagram-with-labels-v3.png&#34;data-srcset=&#34;/media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=320 320w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=550 550w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=750 750w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=900 900w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=1040 1040w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=1240 1240w, /media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;A diagram about the components of a notification policy, including labels and groups&#34;width=&#34;1620&#34;height=&#34;422&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/alerting-notification-policy-diagram-with-labels-v3.png&#34;
            alt=&#34;A diagram about the components of a notification policy, including labels and groups&#34;width=&#34;1620&#34;height=&#34;422&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Alert instances are grouped together if they have the same exact label values for the labels configured in the &lt;code&gt;Group by&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;For example, given the &lt;code&gt;Group by&lt;/code&gt; option set to the &lt;code&gt;team&lt;/code&gt; label:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;alertname:foo, team=frontend&lt;/code&gt;, and &lt;code&gt;alertname:bar, team=frontend&lt;/code&gt; are in one group.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alertname:foo, team=frontend&lt;/code&gt;, and &lt;code&gt;alertname:qux, team=backend&lt;/code&gt; are in another group.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;group-by-alert-rule-or-labels&#34;&gt;Group by alert rule or labels&lt;/h3&gt;
&lt;p&gt;By default, notification policies in Grafana group alerts by the alert rule. Specifically, they are grouped using the &lt;code&gt;alertname&lt;/code&gt; and &lt;code&gt;grafana_folder&lt;/code&gt; labels, as alert rule names are not unique across folders.&lt;/p&gt;
&lt;p&gt;If you want to group alerts by other labels, something other than the alert rule, change the &lt;code&gt;Group by&lt;/code&gt; option to any other combination of labels.&lt;/p&gt;
&lt;h3 id=&#34;a-single-group-for-all-alerts&#34;&gt;A single group for all alerts&lt;/h3&gt;
&lt;p&gt;If you want to group all alerts handled by the notification policy in a single group (without grouping notifications by alert rule or other labels), leave &lt;code&gt;Group by&lt;/code&gt; empty in the Default policy.&lt;/p&gt;
&lt;h3 id=&#34;disable-grouping&#34;&gt;Disable grouping&lt;/h3&gt;
&lt;p&gt;If you want to receive every alert as a separate notification, you can do so by grouping by a special label called &lt;code&gt;...&lt;/code&gt;, ensuring that other labels are not present.&lt;/p&gt;
&lt;h2 id=&#34;timing-options&#34;&gt;Timing options&lt;/h2&gt;
&lt;p&gt;In the notification policy, you can also configure how often notifications are sent for each &lt;a href=&#34;#group-notifications&#34;&gt;group of alerts&lt;/a&gt;. There are three distinct timers applied to groups within the notification policy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;#group-wait&#34;&gt;Group wait&lt;/a&gt;&lt;/strong&gt;: the time to wait before sending the first notification for a new group of alerts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;#group-interval&#34;&gt;Group interval&lt;/a&gt;&lt;/strong&gt;: the time to wait before sending a notification about changes in the alert group.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;#repeat-interval&#34;&gt;Repeat interval&lt;/a&gt;&lt;/strong&gt;: the time to wait before sending a notification if the group has not changed since the last notification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These timers reduce the number of notifications sent. By delaying the delivery of notifications, incoming alerts can be grouped into just one notification instead of many.&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 captioned&#34;
        href=&#34;/media/docs/alerting/alerting-timing-options-flowchart-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 mb-0&#34;
          data-src=&#34;/media/docs/alerting/alerting-timing-options-flowchart-v2.png&#34;data-srcset=&#34;/media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=320 320w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=550 550w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=750 750w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=900 900w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=1040 1040w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=1240 1240w, /media/docs/alerting/alerting-timing-options-flowchart-v2.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;A basic sequence diagram of the the notification policy timers&#34;width=&#34;3840&#34;height=&#34;955&#34;title=&#34;A basic sequence diagram of the notification policy timers&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alerting/alerting-timing-options-flowchart-v2.png&#34;
            alt=&#34;A basic sequence diagram of the the notification policy timers&#34;width=&#34;3840&#34;height=&#34;955&#34;title=&#34;A basic sequence diagram of the notification policy timers&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;A basic sequence diagram of the notification policy timers&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!--
flowchart LR
    A((First alert)) -///-&gt; B
    B[Group wait &lt;br/&gt;  notification] -///-&gt; C
    B -- no changes -///-&gt; D
    C[Group interval &lt;br/&gt;  notification] -- no changes -///-&gt; D
    C -- group changes -///-&gt; C
    D[Repeat interval &lt;br/&gt;  notification]
--&gt;
&lt;h3 id=&#34;group-wait&#34;&gt;Group wait&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;: 30 seconds&lt;/p&gt;
&lt;p&gt;Group wait is the duration Grafana waits before sending the first notification for a new group of alerts.&lt;/p&gt;
&lt;p&gt;This option helps reduce the number of notifications sent for related alerts occurring within a short time frame. The longer the group wait, the more time other alerts have to be included in the initial notification of the new group. The shorter the group wait, the earlier the first notification is sent, but at the risk of not including some alerts.&lt;/p&gt;
&lt;p&gt;If an alert is resolved before the duration elapses, no notification is sent for that alert. This reduces noise from flapping alerts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Consider a notification policy that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Matches all alert instances with the &lt;code&gt;team&lt;/code&gt; label—matching labels equals to &lt;code&gt;team=~.&#43;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Groups notifications by the &lt;code&gt;team&lt;/code&gt; label—one group for each distinct &lt;code&gt;team&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Sets the Group wait timer to &lt;code&gt;30s&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&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;Time&lt;/th&gt;
              &lt;th&gt;Incoming alert instance&lt;/th&gt;
              &lt;th&gt;Notification policy group&lt;/th&gt;
              &lt;th&gt;Number of instances&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;00:00&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=f1&lt;/code&gt; &lt;code&gt;team=frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;1&lt;/td&gt;
              &lt;td&gt;Starts the group wait timer of the &lt;code&gt;frontend&lt;/code&gt; group.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:10&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=f2&lt;/code&gt; &lt;code&gt;team=frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;2&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:20&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=b1&lt;/code&gt; &lt;code&gt;team=backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;1&lt;/td&gt;
              &lt;td&gt;Starts the group wait timer of the &lt;code&gt;backend&lt;/code&gt; group.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:30&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;2&lt;/td&gt;
              &lt;td&gt;Group wait elapsed. &lt;br/&gt; Send initial notification reporting 2 alerts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:35&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=b2&lt;/code&gt; &lt;code&gt;team=backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;2&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:40&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=b3&lt;/code&gt; &lt;code&gt;team=backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:50&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
              &lt;td&gt;Group wait elapsed. &lt;br/&gt; Send initial notification reporting 3 alerts.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;group-interval&#34;&gt;Group interval&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;: 5 minutes&lt;/p&gt;
&lt;p&gt;If an alert was too late to be included in the first notification due to group wait, it is included in subsequent notifications after group interval.&lt;/p&gt;
&lt;p&gt;Group interval is the duration to wait before sending notifications about group changes. A group change occurs when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A new firing alert is added to the group.&lt;/li&gt;
&lt;li&gt;An existing alert is resolved.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here are the related excerpts from the previous example:&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;Time&lt;/th&gt;
              &lt;th&gt;Incoming alert instance&lt;/th&gt;
              &lt;th&gt;Notification policy group&lt;/th&gt;
              &lt;th&gt;Number of instances&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;00:30&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;2&lt;/td&gt;
              &lt;td&gt;Group wait elapsed and starts Group interval timer. &lt;br/&gt; Send initial notification reporting 2 alerts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;00:50&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
              &lt;td&gt;Group wait elapsed and starts Group interval timer. &lt;br/&gt; Send initial notification reporting 3 alerts.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;And below is the continuation of the example setting the Group interval timer to 5 minutes:&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;Time&lt;/th&gt;
              &lt;th&gt;Incoming alert instance&lt;/th&gt;
              &lt;th&gt;Notification policy group&lt;/th&gt;
              &lt;th&gt;Number of instances&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;01:30&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=f3&lt;/code&gt; &lt;code&gt;team=frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;02:30&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=f4&lt;/code&gt; &lt;code&gt;team=frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;05:30&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval elapsed and resets timer. &lt;br/&gt; Send one notification reporting 4 alerts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;05:50&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;3&lt;/td&gt;
              &lt;td&gt;Group interval elapsed and resets timer. &lt;br/&gt; No group changes, and do not send notification.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;08:00&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;alertname=f4&lt;/code&gt; &lt;code&gt;team=backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:30&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval elapsed and resets timer. &lt;br/&gt; No group changes, and do not send notification.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:50&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval elapsed and resets timer. &lt;br/&gt; Send one notification reporting 4 alerts.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once the first notification has been sent for a new group of alerts, the group interval timer starts.&lt;/p&gt;
&lt;p&gt;When the group interval timer elapses, the system resets the group interval timer and sends a notification only if there were group changes. This process repeats until there are no more alerts.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to note that an alert instance exits the group after being resolved and notified of its state change.&lt;/p&gt;
&lt;p&gt;When the group interval timer elapses and no alerts remain, the group is deleted. The &lt;a href=&#34;#group-wait&#34;&gt;group wait timer&lt;/a&gt; will then start again the next time a new alert arrives.&lt;/p&gt;
&lt;h3 id=&#34;repeat-interval&#34;&gt;Repeat interval&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;: 4 hours&lt;/p&gt;
&lt;p&gt;Repeat interval acts as a reminder that alerts in the group are still firing.&lt;/p&gt;
&lt;p&gt;The repeat interval timer decides how often notifications are sent (or repeated) if the group has not changed since the last notification.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Repeat interval is evaluated every time the group interval resets. If the alert group has not changed and the time since the last notification was longer than the repeat interval, then a notification is sent as a reminder that the alerts are still firing.&lt;/p&gt;
&lt;p&gt;Repeat interval must not only be greater than or equal to group interval, but also must be a multiple of Group interval. If Repeat interval is not a multiple of group interval it is coerced into one. For example, if your Group interval is 5 minutes, and your Repeat interval is 9 minutes, the Repeat interval is rounded up to the nearest multiple of 5 which is 10 minutes.&lt;/p&gt;
&lt;p&gt;The maximum duration of the repeat interval is 5 days, constrained by the default value of the &lt;code&gt;notification_log_retention&lt;/code&gt; setting in Grafana.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here are the related excerpts from the previous example:&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;Time&lt;/th&gt;
              &lt;th&gt;Incoming alert instance&lt;/th&gt;
              &lt;th&gt;Notification policy group&lt;/th&gt;
              &lt;th&gt;Number of instances&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;05:30&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. &lt;br/&gt; Send the last notification.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:50&lt;sup&gt;*&lt;/sup&gt;&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. &lt;br/&gt; Send the last notification.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;And below is the continuation of the example setting the Repeat interval timer to 4 hours:&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;Time&lt;/th&gt;
              &lt;th&gt;Incoming alert instance&lt;/th&gt;
              &lt;th&gt;Notification policy group&lt;/th&gt;
              &lt;th&gt;Number of instances&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;04:05:30&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. The time since the last notification was no longer than the repeat interval.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;04:10:30&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;frontend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. The time since the last notification was longer than the repeat interval. &lt;br/&gt; Send one notification reminding the 4 firing alerts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;04:10:50&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. The time since the last notification was no longer than the repeat interval.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;04:15:50&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;backend&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;4&lt;/td&gt;
              &lt;td&gt;Group interval resets. The time since the last notification was longer than the repeat interval. &lt;br/&gt; Send one notification reminding the 4 firing alerts.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;h1 id="group-alert-notifications">Group alert notifications&lt;/h1>
&lt;p>Grouping in Grafana Alerting allows you to batch relevant alerts together into a smaller number of notifications. This is particularly important if notifications are delivered to first-responders, such as engineers on-call, where receiving lots of notifications in a short period of time can be overwhelming. In some cases, it can negatively impact a first-responders ability to respond to an incident. For example, consider a large outage where many of your systems are down. In this case, grouping can be the difference between receiving 1 phone call and 100 phone calls.&lt;/p></description></item></channel></rss>