Перейти к содержанию

Интерполяция: где живут переменные

Переменная — это не только подстановка в текст запроса. Grafana позволяет использовать её практически везде, где можно вписать текст. Это и есть интерполяция — замена ${variable} на значение в реальном времени.

Где можно подставить переменную

В запросе

rate(http_requests_total{instance=~"$instance"}[5m])

Классика. Пользователь выбрал server-42 — Grafana подставила, Prometheus вернул данные.

В заголовке панели (Title)

${server} CPU

На панели заголовок превращается в server-42 CPU — динамически, без ручного переименования.

В Min Interval

${interval}

Пользователь выбрал 5m — и панель пересчитала график с шагом 5 минут.

В тексте панели (описание, Markdown, HTML)

Можно вставить в текстовую панель Markdown:

# Обзор окружения

Текущее окружение: **${environment}**
Сервер: **${server}**

URL может содержать переменную:

https://wiki.company.com/${environment}/servers/${server}

При выборе production и server-42 ссылка сгенерируется как ...production/servers/server-42.

В Repeat

Об этом — отдельная глава дальше. Но суть проста: одна панель, повторённая для каждого значения переменной.

Display value vs Raw value

У переменной есть два представления:

Свойство Raw Display
Для custom переменной dev development
Для query переменной server-42 server-42 (192.168.1.42)

Raw — то, что подставляется в запрос. Display — то, что видит пользователь в дропдауне. Если ваша custom-переменная использует синтаксис dev : development, то в дропдауне будет красивое «development», а в запрос уйдёт лаконичное «dev».

Понимание этой разницы важно, когда вы используете переменную в ссылках и в названиях панелей: для ссылок обычно нужен Raw, для отображения — Display.