Graphite
Graphite — это система мониторинга и графиков, используемая для сбора и визуализации временных рядов данных. Основные компоненты Graphite включают:
- Carbon (демон, который собирает и записывает данные)
- Whisper (база данных временных рядов)
- веб-интерфейс для визуализации данных
Основные команды и примеры
Операторы
sumSeries
Сложение (+
)
Суммирует значения двух метрик на каждой временной отметке.
subtract
Вычитание (-
)
Вычисляет разницу между двумя метриками на каждой временной отметке.
scale
Умножение (*
)
Умножает значения метрики на заданное число.
divideSeries
Деление (/
)
Делит значения одной метрики на значения другой.
Агрегатные функции
sumSeries
Суммирует значения нескольких метрик на каждой временной отметке.
averageSeries
Вычисляет среднее значение для каждой временной отметки.
minSeries
Находит минимальное значение для каждой временной отметки.
maxSeries
Находит максимальное значение для каждой временной отметки.
Функции для работы с временными интервалами
movingAverage
Вычисляет скользящее среднее для метрики.
movingSum
Вычисляет скользящую сумму для метрики.
timeShift
Сдвигает временной ряд на заданный интервал.
Утилиты для метрик
alias
Изменяет отображаемое имя метрики.
aliasByNode
Задает имя метрики, используя часть ее пути.
color
Изменяет цвет линии на графике.
transformNull
Заменяет null
значения на заданное значение.
keepLastValue
Заменяет пропущенные значения последним известным значением.
Функции агрегации и фильтрации
summarize
Агрегирует данные в более крупные интервалы времени.
limit
Ограничивает количество возвращаемых метрик.
sortByMaxima
Сортирует метрики по максимальному значению.
groupByNode
Группирует метрики по части пути и применяет функцию агрегации.
sumSeriesWithWildcards
Суммирует метрики, используя подстановочные знаки для указания группы метрик.
Функции для анализа данных
baselineAberration
Определяет аномалии, основываясь на базовом значении.
anomaly
Определяет аномалии в данных.
Примеры использования функций
Пример 1: Скользящая сумма и переименование метрики
Пример 2: Агрегация данных и ограничение количества метрик
Пример 3: Группировка метрик и их суммирование
Пример 4: Сортировка метрик по максимальному значению и переименование
Пример 5: Определение аномалий и сохранение последних значений
Пример готового графика с использованием нескольких функций
&target=alias(movingSum(metric1, '10min'), '10 Minute Moving Sum')&target=limit(summarize(metric2, '1hour', 'avg'), 5)&from=-1day
Этот запрос создаст график, который отображает скользящую сумму метрики metric1
за 10 минут, а также усредненные значения метрики metric2
за каждый час, ограниченные до 5 метрик за последний день.
Заключение
Graphite предоставляет мощный и гибкий синтаксис для работы с временными рядами данных. Используя описанные выше функции и операторы, можно создавать сложные графики, которые помогут в мониторинге и анализе производительности систем.