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

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 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 — про структуру и поток.