Dynamic Annotations: Unlocking Routing Links and Alert Details

Dynamic Annotations: Unlocking Routing Links and Alert Details

You can now use template variables ({{ $labels.<labelName> }} and {{ $value }}) in Alert Annotations to support inserting dynamic values based on labels in use cases like detailed alert descriptions, routing links, etc. They can be used in the Rule Description, Runbook, and Custom Annotation fields. Read our documentation on Dynamic Annotations here:

Configuring an Alert | Last9 Documentation
A step-by-step guide to configuring an alert rule in an Alert Group

With this, use cases like generating contextual URLs to external systems like your service catalog (eg: Cortex, Atlassian Compass, Datadog) and logging systems (eg: Splunk, Elasticsearch, Dynatrace) get unlocked.

For example, instead of going to Splunk and searching for the alert, you can now deep link to the search view by using http://search.splunk.com/?service={{ $labels.service }}&stack={{ $labels.stack }}.

Users familiar with Prometheus will find this similar to console templates in alert annotations, but with a couple of changes here:

  • In Levitate, labels are first-class in identifying what’s failing and are hence made visible by default in all alerts and notifications. Even if you do not use template variables in Annotations.
  • Syntax errors are highlighted by Levitate upfront instead of silently failing in Prometheus until noticed in the logs or rendered as is in your notifications.
💡
Sign up on Levitate and unlock High Cardinality monitoring that doesn’t die on you.