Group by

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

Трансформация Group by в Grafana агрегирует строки в фрейме данных по одному или нескольким группирующим полям, сворачивая множество строк с одинаковыми значениями измерений в одну итоговую строку — аналогично конструкции GROUP BY в SQL. Вы выбираете поля для группировки (например, hostname или region) и затем указываете функцию агрегирования — sum, mean, min, max, count или last — для каждого оставшегося числового поля, которое нужно обобщить. Эта трансформация особенно полезна, когда запрос возвращает высококардинальный набор временных рядов и нужно свернуть значения до более грубого измерения: например, сгруппировать метрики CPU по контейнерам на уровне pod или namespace, чтобы получить представление использования CPU на уровне сервиса в панели Table. Трансформация Group by работает с последним значением в каждом временном окне при применении к фреймам временных рядов, поэтому её надёжнее всего использовать в комбинации с шагом Reduce, который сначала сворачивает временное измерение. Объединение Group by с трансформацией Sort by в одном конвейере позволяет создавать аккуратные отсортированные рейтинговые таблицы прямо внутри Grafana без каких-либо изменений в запросе к источнику данных.

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

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

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

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

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

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