Canvas: визуализируем поток¶
Классические панели показывают данные во времени или в таблице. Canvas показывает поток: как данные текут от одного компонента к другому, как связаны системы, как выглядит архитектура в реальном времени.
Это свободный холст, на который вы перетаскиваете элементы и соединяете их линиями. Каждый элемент и каждая связь могут менять цвет, размер, текст в зависимости от метрик. Получается не статичная схема, а живая карта инфраструктуры.
Что можно нарисовать¶
- Потоковые диаграммы: API Gateway → Auth Service → Business Logic → Database. На каждом сегменте — метрики: количество запросов, latency, ошибки.
- Сетевые схемы: маршрутизаторы, свитчи, каналы связи. Толщина и цвет линии — загрузка канала, зелёный/красный — packet loss ниже/выше порога.
- Дата-центр или облако: стойки с датчиками температуры, соединённые путями воздушных потоков. Сервер нагрелся — элемент стал красным.
- CI/CD pipeline: этапы сборки, тестирования, деплоя. Каждый этап показывает статус последнего билда.
Элементы (Elements)¶
Элемент — базовая единица Canvas. Это может быть:
- Встроенная иконка из библиотеки Grafana (сервер, база данных, облако, контейнер).
- Кастомное изображение (загрузка PNG/SVG).
- Текст или прямоугольник.
Привязка метрик к элементу¶
Каждый элемент можно «нагрузить» данными из запроса. Grafana выполняет запрос к источнику данных и отображает результат прямо на элементе тремя способами:
Текст — последнее значение метрики выводится внутри элемента или рядом с ним. Например, на элементе сервера написано CPU: 67%.
Цвет фона — заливка элемента меняется по порогам. Настроили зелёный до 50% CPU, жёлтый до 80%, красный выше — сервер сам «подсветит» проблему.
Цвет рамки — то же, но для обводки элемента. Удобно комбинировать с текстом: фон показывает CPU, рамка — memory.
Для настройки откройте панель редактирования элемента и добавьте Data Source в секции Fields. Выберите метрику и укажите, как она влияет на отображение (text, background color, border color).
Connections¶
Connections — линии, соединяющие два элемента. У каждой линии есть source и target (направленные или нет).
Метрики на линиях¶
Connection тоже может менять внешний вид от метрики:
- Цвет линии: зелёный при свободном канале, красный при перегрузке.
- Толщина: ширина линии пропорциональна трафику. Канал 100 Gbps — тонкая зелёная линия. Канал забит под 98% — толстая красная.
- Стиль: сплошная (solid), пунктирная (dashed), точечная (dotted) — по порогам метрики.
Запрос для линии задаётся точно так же, как для обычной панели. В панели редактирования Connection вы добавляете query и настраиваете mapping значений в цвета или толщину.
Data Links¶
Data Link на элементе или connection — это кликабельная ссылка, ведущая на другой дашборд, панель или внешний URL. В отличие от метрик, которые отображаются сразу, data link срабатывает по клику пользователя.
Примеры:
# Переход на дашборд с детализацией по хосту
/d/server-details?var-host=${__data.fields.host}
# Внешняя ссылка на runbook в GitLab
https://gitlab.company.com/runbooks/-/blob/main/${__data.fields.service}.md
При клике Grafana подставляет значения из данных элемента (поле host, service и т.д.) в URL.
Редактирование холста¶
Панель Canvas редактируется визуально в GUI:
- Drag & drop — перетаскиваете элементы с панели инструментов на холст.
- Выделение нескольких элементов — зажимаете Shift и кликаете по элементам.
- Выравнивание — кнопки align left/center/right, distribute horizontal, bring to front/back.
- Zoom & pan — холст можно зумировать и панорамировать, как в графическом редакторе.
Размер Canvas настраивается в настройках панели. Элементы можно размещать за пределами видимой области — пользователь дозумит или пропанорамирует.
Практический пример: карта сервисов¶
Задача: показать живую схему микросервисной архитектуры с метриками.
Элементы: 1. API Gateway (иконка облака) — отображает общий RPS. 2. Auth Service (иконка замка) — latency и статус (зелёный ≤ 100ms, красный > 500ms). 3. Database (иконка базы данных) — количество соединений. 4. Cache (иконка Redis) — hit rate в процентах.
Connections: 1. API Gateway → Auth Service: толщина линии = QPS, цвет: зелёный < 1000 QPS, красный > 1000 QPS. 2. Auth Service → Database: цвет линии = latency запросов. 3. Auth Service → Cache: линия пульсирует, если hit rate упал ниже 80%.
Data Links:
- Клик по Auth Service → дашборд /d/auth-details.
- Клик по линии Auth→DB → дашборд с детализацией запросов к БД.
Результат: на одном экране видно, какой сервис перегружен, какой канал захлёбывается, и даётся возможность одним кликом уйти в детализацию.
Когда использовать Canvas¶
| Сценарий | Canvas | Geomap | Classic panels |
|---|---|---|---|
| Схема сервисов с метриками | ✅ | ❌ | ❌ |
| Геоданные на карте | ❌ | ✅ | ❌ |
| Метрики во времени | ❌ | ❌ | ✅ |
| Статус pipeline/воркфлоу | ✅ | ❌ | ❌ |
| Drill-down по топологии | ✅ | ❌ | ❌ |
Canvas не заменяет Time Series и Gauges. Он дополняет их картинкой, где сразу видно топологию. Классические панели — про тренды. Canvas — про структуру и поток.