Язык шаблонов оповещений

Шаблоны уведомлений и шаблоны правил оповещений, такие как аннотации и метки, используют один и тот же язык шаблонов Go, text/template.

Оба типа шаблонов могут использовать одни и те же ключевые слова, функции и операторы сравнения языка шаблонов Go, такие как range, if, and, index, eq и другие.

Однако важно отметить, что, поскольку уведомления и правила оповещений работают в разных контекстах, некоторые дополнительные переменные и функции доступны только для шаблонов уведомлений или только для шаблонов правил оповещений. См.:

Эта документация даёт обзор функций и операторов языка шаблонов Go, доступных как для шаблонов уведомлений, так и для шаблонов правил оповещений.

Print

Чтобы вывести значение чего-либо, используйте {{ и }}. Вы можете вывести значение переменной, поле переменной, результат функции или значение dot.

Go
{{ $values }}
{{ $values.A.Value }}
{{ humanize 1000.0 }}
{{ .Alerts }}

Dot

В text/template есть специальный курсор, называемый dot, записываемый как .. Этот курсор можно рассматривать как переменную, значение которой меняется в зависимости от места использования в шаблоне.

В начале шаблонов уведомлений dot (.) ссылается на Notification Data.

Go
{{ .Alerts }}

В шаблонах аннотаций и меток dot (.) инициализируется всеми данными оповещения. Вместо него рекомендуется использовать переменные $labels и $values для прямого доступа к меткам оповещения и значениям запроса.

Note

Dot (.) может ссылаться на что-то другое при использовании в range, with или при написании шаблонов, используемых в других шаблонах.

Warning

[ru] DOCS_SHARED: "docs/grafana/latest/alerting/alerting-rules/templates/language.ru.md" ("/hugo/content/docs/grafana/latest/alerting/alerting-rules/templates/language.ru.md:81:1") shared directory "docs/grafana/latest/shared" not found