Merge

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

Трансформация Merge в Grafana объединяет несколько фреймов результатов запросов — которые могут поступать из отдельных запросов в рамках одной панели или из разных источников данных — в единую таблицу, выравнивая строки с совпадающими значениями полей. Это особенно полезно в панелях Table или Time series, которые выполняют два и более запроса и должны отображать результаты рядом: например, объединение загрузки CPU из Prometheus с данными о стоимости из SQL-базы в одной панели с ключом по имени хоста. Когда трансформация Merge встречает ряды с одинаковыми временными метками, она объединяет их горизонтально, так что каждая точка времени содержит значения из всех входных рядов в одной строке. В отличие от JOIN в базе данных, трансформация Merge не требует явного ключа — Grafana выравнивает фреймы по совпадающим полям одного типа, — что делает её простой в использовании, но наиболее подходящей для наборов данных с совместимыми временными метками или общими значениями измерений. Комбинирование трансформации Merge с Filter by name и Organize fields в одном конвейере даёт полный контроль над формой и порядком столбцов объединённого набора данных, отображаемого в панели Grafana.

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

Merge работают после запроса, до визуализации: 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 шага; больше — переструктурируйте запрос.

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

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

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

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