Применение функции rate и фильтров по меткам
На этом шаге вы уточните свой запрос, используя фильтры по меткам и функцию rate(), чтобы получить более осмысленные данные. Сырое значение счетчика часто не является полезным; нас обычно больше интересует скорость его изменения.
Сначала отфильтруем результаты, чтобы увидеть только время ЦП, затраченное в режиме idle. Вы можете сделать это, добавив селектор меток в фигурных скобках {} к вашему запросу.
- Введите следующий запрос в Expression Browser и выполните его:
node_cpu_seconds_total{mode="idle"}
Этот запрос теперь возвращает только временные ряды, где метка mode точно равна idle.
Далее рассчитаем скорость изменения этого счетчика в секунду. Для этого используем функцию rate(). Функция rate() должна знать, за какой период времени рассчитывать скорость. Мы указываем это с помощью селектора вектора диапазона (range vector selector), например [5m] для последних 5 минут.
- Теперь измените свой запрос, обернув его в функцию
rate() и добавив селектор диапазона 5 минут. Выполните финальный запрос:
rate(node_cpu_seconds_total{mode="idle"}[5m])
Разберем этот расширенный запрос:
node_cpu_seconds_total{mode="idle"}: Это селектор мгновенного вектора (instant vector selector), который фильтрует нужную нам метрику и метку.
[5m]: Это селектор диапазона (range selector), который указывает Prometheus получить все точки данных за последние 5 минут для выбранных временных рядов.
rate(...): Это функция, которая берет 5-минутный диапазон данных и вычисляет среднюю скорость увеличения счетчика в секунду.
Результатом является уже не большое значение счетчика, а значение обычно от 0 до 1 (для одного ядра ЦП). Значение 0.95 будет означать, что за последние 5 минут процессор в среднем был на 95% свободен (idle). Это гораздо более полезная информация для мониторинга.