🏏 450 million fans watched the last IPL. What is 'Cricket Scale' for SREs? Know More

May 21st, ‘24/Changelog

Dynamic Annotations: Unlocking routing links, detailed alert descriptions, and more

Using template variables to insert dynamic values based on labels for use cases like detailed alert descriptions, routing links, etc.

Dynamic Annotations: Unlocking routing links, detailed alert descriptions, and more

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.
💡
Get up and running with Levitate and enhance your monitoring with Change Events.