Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
linux:prom [2023/12/02 08:53] admin |
linux:prom [2024/06/28 05:46] (текущий) admin |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
==== Установка ==== | ==== Установка ==== | ||
==== Использование ==== | ==== Использование ==== | ||
+ | |||
+ | === Варианты тегов в легенде === | ||
+ | {{: | ||
+ | |||
+ | |||
+ | === Дефотное значение при отсутствии данных === | ||
+ | < | ||
+ | sum() OR vector(0) | ||
+ | |||
+ | или, в случае с VictoriaMetrics | ||
+ | sum() OR default 0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | === === | ||
+ | |||
Строка 181: | Строка 197: | ||
По сути получается что считаются квантили, | По сути получается что считаются квантили, | ||
:!: интерпретация " | :!: интерпретация " | ||
+ | :!: Саммари не рекомендуется агрегировать или делать это аккуратно, | ||
Строка 262: | Строка 279: | ||
| {{: | | {{: | ||
+ | |||
+ | |||
+ | === PromQL === | ||
+ | Каждая метрика это временной ряд, отдельная таблица, | ||
< | < | ||
- | < | + | < |
+ | В самом простом случае, | ||
- | </details> | + | <code> |
+ | http_requests_total | ||
+ | # Имя метрики тоже является тегом | ||
+ | {__name__=" | ||
+ | # Теги можно фильтровать | ||
+ | http_requests_total{job=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Range vector**\\ | ||
+ | Так же можно задать временной диапазон, | ||
+ | В таком случае мы получаем т.н. **" | ||
+ | < | ||
+ | http_requests_total{job=" | ||
+ | </ | ||
+ | |||
+ | Простой запрос возвращает **" | ||
+ | |||
+ | В случае с **range вектором**, | ||
+ | < | ||
+ | [ 5, | ||
+ | [2], [3], [4] | ||
+ | [3], [4], [5] | ||
+ | [4], [5], [6] | ||
+ | </ | ||
+ | |||
+ | Но такие данные на двумерном графике ес-но рисоваться не могут, поэтому их нужно сначала привести к простому виду, к " | ||
+ | т.е. если мы применяем диапазон времени для сглаживания графика, | ||
+ | |||
+ | :!: На счет интервала, | ||
+ | |||
+ | < | ||
+ | В случае с графаной, | ||
+ | Переменная интервала призвана динамически подбирать интервал, | ||
+ | </ | ||
+ | </ | ||
- | === PromQL === | ||
< | < | ||
- | < | + | < |
- | В случае с Прометеем, для группировки интервалов следует использовать переменную | + | < |
- | Переменная интервала призвана | + | # OR |
+ | http_requests_total{app=~" | ||
+ | |||
+ | # AND (# найдет все tag, начинающиеся на aaa И заканчивающиеся на bbb) | ||
+ | metric{tag=~" | ||
+ | |||
+ | # запрос, который умножит значения на 10 и вернет только те, которые больше или равны 50: | ||
+ | metric{tag=" | ||
+ | |||
+ | # вернет | ||
+ | metric1 and metric2{tag="something"} | ||
+ | |||
+ | # Запрос, который вернет разницу. Например, посчитаем сколько | ||
+ | total_ram{instance=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Агрегация**\\ | ||
+ | < | ||
+ | # Сумма. Например есть | ||
+ | http_requests_total{app=" | ||
+ | http_requests_total{app=" | ||
+ | |||
+ | # Просуммируем значения со всеми вариантами (! попавшими под запрос) | ||
+ | sum(http_requests_total) | ||
+ | |||
+ | # Для того чтобы отображать не все теги, их можно группировать, группировка по указанным | ||
+ | sum (http_requests_total) by (app, instance) | ||
+ | |||
+ | # Группировка по всем кроме указанных | ||
+ | sum (http_requests_total) without (instance) | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Функции**\\ | ||
+ | Популярна ф-я **rate**. Применяется к постоянно возрастающим счетчикам, считает скорость | ||
+ | Учитывает сбросы метрик приложения (рестарт например), | ||
+ | |||
+ | **deriv** аналог rate() но не для | ||
+ | Обе ф-ии принимают **range vector**\\ | ||
+ | |||
+ | **histogram_quantile**\\ | ||
+ | Принимает **instant vector**, позволяет посчитать нужный перцентиль из гистограммы, при этом сами | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | rate(http_requests_total{app=" | ||
+ | deriv(ram_free{host=" | ||
+ | |||
+ | |||
+ | histogram_quantile(0.95, | ||
+ | histogram_quantile( | ||
+ | 0.95, | ||
+ | sum by (url, le) ( | ||
+ | rate(http_request_duration_seconds_bucket[5m]) | ||
+ | ) | ||
+ | ) | ||
+ | </ | ||