Трансформации

Тема дорожной карты · Grafana

Трансформации — мощная функция Grafana, позволяющая изменять форму, фильтровать, объединять и вычислять данные на основе результатов запросов полностью на стороне фронтенда Grafana, без модификации основного запроса или источника данных. Применяемые на вкладке Transform редактора панели Grafana, трансформации формируют конвейер: каждый шаг получает вывод предыдущего, поэтому можно объединять несколько операций — например, фильтрацию полей, слияние рядов и вычисление производного столбца — в рамках одной панели. Среди часто используемых трансформаций: Filter by name, Merge, Group by, Add field from calculation, Organize fields, Sort by и Reduce. Трансформации особенно полезны, когда источник данных возвращает данные в форме, не соответствующей напрямую желаемой визуализации, — они позволяют инженерам разворачивать, объединять или агрегировать данные внутри Grafana, не усложняя запросы. Поскольку трансформации выполняются в браузере, они лучше всего подходят для умеренных по объёму наборов данных; очень большие наборы следует предварительно агрегировать в запросе к источнику данных для поддержания производительности дашборда.

Как это работает

Трансформации работают после запроса, до визуализации: Join by field, Reduce (агрегация per series), Filter by name/value, Rename fields, Concatenate fields, Calculate (математика между series). Полезны для: комбинирования запросов из разных источников, вычисления ratio, переименования generic-labels, нормализации между data sources. Применяются в Transform-вкладке панели; порядок трансформаций важен.

Когда применять

Трансформации — когда query language не может сделать нужное (например, join метрики с CMDB-lookup таблицей из SQL-datasource). Reduce — для коллапса длинного time-series в одно число для Stat-панели. Лимит цепочки трансформаций 2-3 шага; больше — переструктурируйте запрос.

Типичные ошибки

Ловушки Трансформации: огромные цепочки трансформаций прячут, что показывается (отладочный кошмар); трансформации на больших series (медленная client-side обработка); трансформации для фикса плохих данных вместо фикса на источнике.

Связанные понятия

Полезные ресурсы