Annotations and labels for alerting rules

Annotations and labels are key value pairs associated with alerts originating from the alerting rule, datasource response, and as a result of alerting rule evaluation. They can be used in alert notifications directly or in templates and template functions to create notification contact dynamically.

Annotations

Annotations are key-value pairs that provide additional meta-information about an alert. For example: a description, a summary, and runbook URL. These are displayed in rule and alert details in the UI and can be used in contact point message templates.

Labels

Labels are key-value pairs that contain information about, and are used to uniquely identify an alert. The label set for an alert is generated and added to throughout the alerting evaluation and notification process.

How are labels used?

  • The complete set of labels for an alert is what uniquely identifies an alert within Grafana Alerts.
  • The Alertmanager uses labels to match alerts for silences and alert groups in notification policies.
  • The alerting UI displays labels for every alert instance generated by the evaluation of that rule.
  • Contact points can access labels to dynamically generate notifications that contain information specific to the alert that is resulting in a notification.
  • Labels can be added to an alerting rule. These manually configured labels are able to use template functions and reference other labels. Labels added to an alerting rule here take precedence in the event of a collision between labels.

    Alert detailsAnnotations and labels for alerting rules - 图2

Variables available to alerting rule labels and annotations

The following template variables are available when expanding annotations and labels.

NameDescription
$labelsThe labels from the query or condition. For example, {{ $labels.instance }} and {{ $labels.job }}. This is unavailable when the rule uses a classic condition.
$valuesThe values of all reduce and math expressions that were evaluated for this alert rule. For example, {{ $values.A }}, {{ $values.A.Labels }} and {{ $values.A.Value }} where A is the refID of the expression. This is unavailable when the rule uses a classic condition
$valueThe value string of the alert instance. For example, [ var=’A’ labels={instance=foo} value=10 ].