Шпаргалка PromQL
О шпаргалке
Эта шпаргалка содержит основные конструкции языка запросов PromQL/MetricsQL, используемого в Astra Monitoring для работы с метриками. Все примеры можно копировать и использовать в интерфейсе Astra Monitoring .
Selecting series / Выбор серий
Example |
Meaning / Значение |
---|---|
|
Select latest sample for series with a given metric name / Выбрать последнее значение метрики с заданным именем |
|
Select 5-minute range of samples for series with a given metric name / Выбрать 5-минутный диапазон значений метрики с заданным именем |
|
Only series with given label values / Только ряды с указанными значениями меток |
`node_cpu_seconds_total{cpu!=»0»,mode=~»user |
system»}` |
|
Select data from one day ago and shift it to the current time / Взять значения за сутки назад и сдвинуть их ко времени запроса |
Rates of increase for counters / Скорость увеличения счетчиков
Example |
Meaning / Значение |
---|---|
|
Per-second rate of increase, averaged over last 5 minutes / Средняя скорость увеличения в секунду за последние 5 минут |
|
Per-second rate of increase, calculated over last two samples in a 1-minute time window / Скорость увеличения в секунду по последним двум значениям за минуту |
|
Absolute increase over last hour / Абсолютное увеличение за час |
Aggregating over multiple series / Агрегация по нескольким рядам
Example |
Meaning / Значение |
---|---|
|
Sum over all series / Сумма по всем рядам |
|
Preserve the |
|
Aggregate away the |
Available aggregation operators / Доступные операторы агрегации:
sum()
, min()
, max()
, avg()
, stddev()
, stdvar()
, count()
, count_values()
, group()
, bottomk()
, topk()
, quantile()
Math between series / Математика между рядами
Example |
Meaning / Значение |
---|---|
|
Add all equally-labelled series from both sides / Сложить ряды с одинаковыми метками |
|
Add series, matching only on the |
|
Add series, ignoring the |
|
Explicitly allow many-to-one matching / Явно разрешить сопоставление многие-к-одному |
|
Include the |
Available arithmetic operators / Доступные арифметические операторы:
+
, -
, *
, /
, %
, ^
Filtering series by value / Фильтрация рядов по значению
Example |
Meaning / Значение |
---|---|
|
Only keep series with a sample value greater than a given number / Оставить только ряды со значениями больше заданного |
|
Only keep series from the left-hand side whose sample values are larger than their right-hand-side matches / Оставить только левые ряды, значения которых больше правых |
|
Instead of filtering, return 0 or 1 for each compared series / Возвращать 0 или 1 вместо фильтрации |
|
Match only on specific labels / Сравнивать только по указанным меткам |
Available comparison operators / Доступные операторы сравнения:
==
, !=
, >
, <
, >=
, <=
Example |
Meaning / Значение |
---|---|
|
Calculate 90th percentile for only the |
Changes in gauges / Изменение измеряемых метрик (gauge)
Example |
Meaning / Значение |
---|---|
|
Per-second derivative using linear regression / Производная в секунду (линейная регрессия) |
|
Absolute change in value over last hour / Абсолютное изменение значения за час |
|
Predict value in 1 hour, based on last 4 hours / Прогноз значения через час по последним четырём часам |
Aggregating over time / Агрегация по времени
Example |
Meaning / Значение |
---|---|
|
Average within each series over a 5-minute period / Среднее по каждому ряду за 5 минут |
|
Get the maximum for each series over a one-day period / Максимум для каждого ряда за сутки |
|
Count the number of samples for each series over a 5-minute period / Количество значений за 5 минут |
Time / Работа со временем
Example |
Meaning / Значение |
---|---|
|
Get the Unix time in seconds at each resolution step / Получить Unix-время в секундах для каждого шага |
|
Get the age of the last successful batch job run / Возраст последнего успешного выполнения batch-задачи |
|
Find batch jobs which haven’t succeeded in an hour / Batch-задачи, неудавшиеся за последний час |
Dealing with missing data / Работа с отсутствующими данными
Example |
Meaning / Значение |
---|---|
|
Create one output series when the input vector is empty / Создать один ряд если входной вектор пуст |
|
Create one output series when the input range vector is empty for 5 minutes / Создать один ряд, если вектор пуст 5 минут |
Manipulating labels / Работа с метками
Example |
Meaning / Значение |
---|---|
|
Join the values of two labels with a ‘ ’ (space) separator into a new |
|
Extract part of a label and store it in a new label / Извлечь часть значения метки в новую метку |
Subqueries / Подзапросы
Example |
Meaning / Значение |
---|---|
|
Calculate the 5-minute-averaged rate over a 1-hour period, at the default subquery resolution (= global rule evaluation interval) / 5-минутное среднее за час с дефолтным разрешением подзапроса |
|
Calculate the 5-minute-averaged rate over a 1-hour period, at a 15-second subquery resolution / 5-минутное среднее за час с разрешением подзапроса 15 секунд |
|
Using the subquery result to get the maximum rate over a 1-hour period / Максимальный rate из подзапроса за час |
Дополнительные материалы
Для более глубокого изучения PromQL рекомендуем ознакомиться с:
Документация: