Интерполяция: где живут переменные¶
Переменная — это не только подстановка в текст запроса. 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}**
В ссылках (Panel Links, Dashboard Links)¶
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.