Браузер метрик и построитель PromQL-запросов

Руководство по работе с обозревателем метрик и визуальным построителем PromQL-запросов: поиск метрик, построение запросов, анализ результатов.

На этой странице:

Введение

Браузер метрик — инструмент платформы Proto Observability для работы с метриками Prometheus. Он позволяет:

  • Находить метрики — просматривать каталог всех доступных метрик с описаниями и типами
  • Изучать структуру данных — видеть лейблы, их значения и количество временных рядов
  • Строить запросы визуально — собирать PromQL-запросы через графический интерфейс без знания синтаксиса
  • Писать PromQL вручную — использовать текстовый редактор с подсветкой синтаксиса и валидацией
  • Анализировать результаты — просматривать данные в виде графиков, таблиц и статистики

Как открыть: перейдите в раздел Метрики в основном меню навигации платформы.


Браузер метрик

Браузер метрик — начальный экран, который отображается при открытии инструмента. Он состоит из двух панелей: списка метрик (слева) и деталей выбранной метрики (справа).

Список метрик

Левая панель содержит таблицу всех доступных метрик в системе.

Главная страница обозревателя метрик

Поиск метрик

Введите текст в поле поиска над таблицей для фильтрации метрик. Поиск работает по всем столбцам: имени, типу и описанию. Совпадения выделяются жёлтым цветом.

Например, введите http чтобы найти все метрики, связанные с HTTP-трафиком, или error для метрик ошибок.

Сортировка и постраничная навигация

  • Нажмите на заголовок столбца Имя метрики или Тип для сортировки по возрастанию или убыванию
  • В нижней части таблицы выберите количество метрик на странице: 25, 50, 100 или 200
  • Общее количество найденных метрик отображается над таблицей

Детали метрики

Нажмите на строку метрики в списке — справа откроется панель с подробной информацией.

Панель деталей метрики

Панель содержит следующие сведения:

  • Имя метрики — полное имя, отображается моноширинным шрифтом
  • Тип — цветной индикатор типа метрики (counter, gauge, histogram, summary)
  • Описание — текст справки, объясняющий что измеряет метрика
  • Кардинальность — общее количество временных рядов для этой метрики
  • Время последнего сбора — когда метрика была получена в последний раз

В верхней части панели находится кнопка Построить запрос — она переводит в построитель запросов с уже выбранной метрикой.

Исследование лейблов

Раздел Лейблы в панели деталей позволяет изучить лейблы (метки) выбранной метрики.

Для каждого лейбла отображается:

  • Имя лейбла — например, job, instance, method
  • Количество уникальных значений — сколько различных значений имеет лейбл

Нажмите на лейбл, чтобы раскрыть список его значений и увидеть распределение.

Также отображается раздел Примеры серий — таблица с первыми 5 временными рядами метрики и их лейблами. Это помогает понять структуру данных перед построением запроса.


Построитель запросов

Построитель запросов — основной инструмент для создания PromQL-запросов. Он доступен по нажатию кнопки Построить запрос в браузере метрик или напрямую через навигацию.

Построитель работает в двух режимах: визуальном (сборка через графический интерфейс) и Чистый PromQL (ручной ввод текста запроса).

Визуальный режим

Визуальный режим — режим по умолчанию. Запрос собирается построчно через выпадающие списки и поля ввода.

Визуальный построитель запросов

Шаг 1. Выбор метрики

Выберите метрику из выпадающего списка или используйте выбранную метрику на прошлом шаге в браузере метрик. Список поддерживает поиск — начните вводить имя метрики для фильтрации.

После выбора метрики автоматически загружаются доступные лейблы и открываются следующие разделы построителя.

Шаг 2. Фильтрация по лейблам

Добавьте фильтры, чтобы сузить выборку данных. Нажмите Добавить фильтр для добавления нового условия.

Каждый фильтр содержит три поля:

Поле Описание Пример
Лейбл Имя лейбла (выбор из списка) host
Оператор Оператор сравнения =
Значение Значение для сравнения demoapp.local

Доступные операторы сравнения:

Оператор Значение Пример
= Точное совпадение job="prometheus"
!= Не равно status!="200"
=~ Совпадение по регулярному выражению method=~"GET|POST"
!~ Не совпадает с регулярным выражением path!~"/health.*"

Можно добавить до 5 фильтров. Для удаления фильтра нажмите на кнопку удаления справа от строки.

Шаг 3. Выбор функции

Выберите функцию из выпадающего списка для трансформации данных.

Наиболее часто используемые функции:

Функция Назначение Когда использовать
rate() Скорость изменения в секунду Для counter-метрик: запросы/сек, ошибки/сек
irate() Мгновенная скорость изменения Для детальных графиков counter-метрик
increase() Абсолютный прирост за период Сколько запросов было за последние 5 минут
delta() Разница значений за период Изменение gauge-метрик за период
histogram_quantile() Расчёт перцентиля Время отклика P95, P99 из histogram-метрик

Для некоторых функций появляются дополнительные параметры:

  • histogram_quantile() — поле для ввода значения квантиля (от 0 до 1, например 0.95 для P95)
  • predict_linear() — время прогноза в секундах
  • clamp_min() / clamp_max() — пороговое значение

Шаг 4. Агрегация

Раздел Агрегация позволяет объединить несколько временных рядов в один или несколько итоговых значений.

Доступные операторы агрегации:

Оператор Описание
sum Сумма всех значений
avg Среднее арифметическое
min Минимальное значение
max Максимальное значение
count Количество рядов
topk Первые K рядов с наибольшими значениями
bottomk Первые K рядов с наименьшими значениями
stddev Стандартное отклонение

Группировать по — выберите лейблы, по которым группировать результат. Например, агрегация sum с группировкой по instance вычислит сумму для каждого инстанса отдельно.

Для операторов topk и bottomk укажите числовое значение K — сколько результатов показать.

Шаг 5. Бинарные операции (необязательно)

Раздел Binary Operation позволяет комбинировать запрос с числом или другой метрикой через арифметический или логический оператор.

Арифметические операторы: +, -, *, /, % (остаток), ^ (степень)

Операторы сравнения: ==, !=, >, <, >=, <=

Например, деление одной метрики на другую для вычисления процента ошибок.

Шаг 6. Настройка временного диапазона

Таймпиккер управляет периодом и типом запроса.

Тип запроса:

Тип Описание Когда использовать
Диапазон Данные за период времени (несколько точек) Графики трендов, анализ динамики
Мгновенный Одно значение на текущий момент Проверка текущего состояния

Временной диапазон — выберите начало и конец периода. По умолчанию отображается последний час.

Шаг — интервал между точками данных. Обычно вычисляется автоматически. Укажите вручную, если запрос слишком медленный (увеличьте шаг) или недостаточно детальный (уменьшите шаг).

Автообновление — включите для периодического выполнения запроса. Доступные интервалы: 30 секунд, 1 минута, 5 минут. Автообновление автоматически приостанавливается при переключении на другую вкладку браузера.

Предпросмотр PromQL

Под всеми строками построителя отображается сгенерированный PromQL-запрос с подсветкой синтаксиса. Запрос обновляется в реальном времени при каждом изменении параметров.

Предпросмотр и валидация запроса

Рядом с запросом отображается индикатор валидации:

  • Зелёная галочка — запрос корректен, готов к выполнению
  • Жёлтый треугольник — есть предупреждения (запрос выполнится, но может быть неоптимальным)
  • Красный крестик — есть ошибки синтаксиса (запрос не выполнится)

Кнопки рядом с предпросмотром:

  • Форматировать — отформатировать запрос для удобного чтения
  • Копировать запрос — скопировать запрос в буфер обмена

Выполнение запроса

  • Выполнить запрос — выполнить запрос. Кнопка заблокирована, если есть ошибки валидации
  • Отменить — отменить выполняющийся запрос
  • Сбросить — сбросить все параметры к начальным значениям

Во время выполнения отображается индикатор загрузки с отсчётом времени.


Режим Чистый PromQL

Переключитесь на вкладку Чистый PromQL для ручного ввода PromQL-запросов.

Текстовый редактор PromQL

Редактор предоставляет:

  • Подсветку синтаксиса — имена метрик, функции, ключевые слова, лейблы, числа и операторы выделены разными цветами
  • Валидацию в реальном времени — ошибки подсвечиваются сразу при вводе, с указанием позиции и описанием проблемы
  • Подсказки исправлений — при ошибках отображаются рекомендации (например, «пропущена закрывающая скобка»)

Пример ввода запроса вручную:

topk(5, sum by (service) (rate(http_requests_total{status=~"5.."}[5m])))

Все настройки временного диапазона, типа запроса и автообновления работают так же, как в визуальном режиме.

Переключение между режимами

Переключение между визуальным и текстовым режимами выполняется через вкладки в верхней части построителя.

  • Визуальный → Чистый PromQL: запрос автоматически генерируется из выбранных параметров. Данные не теряются.
  • Чистый PromQL → Визуальный: система анализирует текст запроса и заполняет поля построителя. Если запрос слишком сложен для визуального представления (вложенные выражения, подзапросы), отобразится предупреждение и вы останетесь в текстовом режиме.

Выполнение и анализ результатов

После нажатия Выполнить запрос результаты отображаются в правой части экрана в виде вкладок. Доступно пять режимов просмотра.

Вкладка «График»

Визуализация результатов в виде линейного графика.

  • Ось X — время
  • Ось Y — значения метрики
  • Легенда — список всех временных рядов. Нажмите на элемент легенды, чтобы скрыть или показать соответствующую линию
  • Масштабирование — выделите область на графике мышью для увеличения. Перетащите график для панорамирования
  • Подсказка — наведите курсор на точку, чтобы увидеть точное значение и время

Карточки над графиком показывают:

  • Количество рядов — сколько временных рядов вернул запрос
  • Время выполнения — длительность выполнения запроса в миллисекундах

Вкладка «Таблица»

Табличное представление результатов.

Результат запроса — таблица

  • Каждый уникальный лейбл отображается в отдельном столбце
  • Столбец Value — последнее значение
  • Столбец Timestamp — время последнего значения
  • Нажмите на заголовок столбца для сортировки
  • Используйте поле поиска для фильтрации строк по значениям лейблов
  • Кнопка Копировать копирует видимые данные в буфер обмена в табличном формате

Вкладка «Статистика»

Сводная статистика по результатам запроса.

Отображаемые карточки:

Показатель Описание
СЕРИЙ Общее количество временных рядов
ТОЧЕК ДАННЫХ Общее количество точек данных
МИН Минимальное значение среди всех рядов
МАКС Максимальное значение
СРЕДНЕЕ Среднее значение
ТЕКУЩЕЕ Последнее полученное значение

Большие числа отображаются в сокращённом формате (например, 1.2K, 3.4M).

Вкладка «Объяснение»

Раздел помогает понять, что делает ваш PromQL-запрос.

Объяснение запроса

Содержит три секции:

1. Описание на естественном языке

Текстовое объяснение запроса простым языком. Например:

«Этот запрос вычисляет скорость изменения метрики http_requests_total (запросы в секунду), фильтрует по job=prometheus и method=GET за окно в 5 минут, затем суммирует результаты с группировкой по instance.»

2. Поток данных

Пронумерованные шаги обработки данных:

  1. Источник: выбор метрики http_requests_total
  2. Фильтр: job="prometheus", method="GET"
  3. Трансформация: применение rate() за 5-минутное окно
  4. Агрегация: sum с группировкой по instance

Каждый шаг отмечен цветным индикатором типа операции.

3. Дерево запроса (AST)

Интерактивное дерево структуры запроса. Узлы можно раскрывать и сворачивать. Цветовая кодировка:

  • Синий — имена метрик
  • Оранжевый — функции
  • Фиолетовый — агрегации
  • Зелёный — лейблы
  • Серый — временные диапазоны

Наведите курсор на узел для отображения описания элемента.

Вкладка «Производительность»

Анализ производительности выполненного запроса.

Анализ производительности запроса

1. Оценка скорости

Оценка Цвет Время выполнения
Быстрый Зелёный Менее 500 мс
Нормальный Синий Менее 2 секунд
Медленный Оранжевый Менее 5 секунд
Очень медленный Красный Более 5 секунд

2. Разбивка по времени

Горизонтальная диаграмма, показывающая долю сетевого взаимодействия и обработки данных в общем времени выполнения.

3. Метрики результата

  • Количество возвращённых рядов
  • Количество точек данных
  • Оценка используемой памяти

4. Рекомендации по оптимизации

Цветные уведомления с конкретными советами:

  • Красные (критические): «Запрос вернул более 50 000 рядов — добавьте фильтры или агрегацию»
  • Оранжевые (предупреждения): «Отсутствуют фильтры по лейблам — производительность может быть низкой»
  • Синие (информационные): «Увеличьте шаг (step) для уменьшения объёма данных»

5. История производительности

Столбчатая диаграмма времени выполнения последних 20 запросов. Позволяет отслеживать тенденции. Кнопка Очистить историю сбрасывает накопленные данные.

Экспорт результатов

Меню экспорта доступно на панели результатов:

  • CSV — табличные данные для Excel или Google Sheets
  • JSON — необработанные результаты в формате JSON
  • PNG — график в виде изображения

История запросов

Нажмите кнопку История запросов в заголовке построителя, чтобы открыть боковую панель истории.

Панель истории запросов

Возможности

  • Поиск — фильтрация истории по тексту PromQL-запроса
  • Фильтр по статусу — все запросы, успешные или с ошибками
  • Повторное выполнение — нажмите на запрос в истории, чтобы загрузить его в построитель и выполнить заново

Информация о каждом запросе

  • Текст PromQL-запроса (наведите курсор для просмотра полного текста)
  • Время выполнения в миллисекундах
  • Количество возвращённых рядов
  • Относительное время выполнения (например, «2 минуты назад»)
  • Статус: успешно или ошибка

Хранение

  • 10 последних запросов сохраняются между сессиями (в локальном хранилище браузера)
  • 50 запросов хранятся в рамках текущей сессии (очищаются при обновлении страницы)

Кнопка Очистить удаляет всю историю с подтверждением.


Словарь терминов

Термин Описание
Метрика (Metric) Именованное измерение, собираемое из системы (например, http_requests_total)
Лейбл (Label) Пара «ключ-значение», которая категоризирует данные метрики (например, job="web-server")
Временной ряд (Time Series) Уникальная комбинация имени метрики и набора лейблов с привязанными к времени значениями
Кардинальность (Cardinality) Количество уникальных временных рядов для метрики
Counter Тип метрики — счётчик, значение только растёт
Gauge Тип метрики — измерение, может расти и уменьшаться
Histogram Тип метрики — распределение значений по корзинам
Summary Тип метрики — аналог histogram, перцентили вычисляются на клиенте
PromQL Prometheus Query Language — язык запросов для метрик
Range Vector Временной ряд с диапазоном времени (например, [5m])
Instant Vector Одно значение для каждого ряда на определённый момент времени
Функция (Function) Операция над данными метрики (rate, sum, avg и др.)
Агрегация (Aggregation) Объединение нескольких рядов в итоговые значения
Group By Лейблы, по которым сохраняется группировка при агрегации
Step Интервал между точками данных в range-запросе

Решение проблем

Запрос не возвращает данных

Причина: метрика не существует, фильтры слишком строгие или данные отсутствуют за выбранный период.

Решение:

  1. Проверьте имя метрики в обозревателе метрик
  2. Удалите фильтры по лейблам и выполните запрос без них
  3. Увеличьте временной диапазон
  4. Убедитесь, что значения лейблов указаны корректно (регистр имеет значение)

Запрос выполняется слишком долго

Причина: запрос возвращает слишком много временных рядов или период слишком большой.

Решение:

  1. Добавьте фильтры по лейблам для ограничения выборки
  2. Используйте агрегацию (sum, avg) для уменьшения количества рядов
  3. Увеличьте шаг (step) для уменьшения количества точек
  4. Сократите временной диапазон
  5. Проверьте вкладку Производительность для конкретных рекомендаций

Ошибка «No data» при использовании rate()

Причина: функция rate() требует хотя бы двух точек данных в указанном диапазоне.

Решение: увеличьте диапазон функции. Если данные собираются каждые 15 секунд, используйте диапазон не менее 1m. Рекомендуемое значение — 5m.

Неожиданные значения на графике

Причина: применение rate() к gauge-метрике или отсутствие rate() для counter-метрики.

Решение:

  • Для counter-метрик (растущие значения, например _total) — всегда используйте rate() или increase()
  • Для gauge-метрик (текущие значения, например _current, _usage) — используйте метрику напрямую или delta()

Визуальный режим не может разобрать запрос

Причина: запрос содержит конструкции, которые не поддерживаются визуальным построителем (вложенные выражения, подзапросы, сложные бинарные операции).

Решение: используйте режим Чистый PromQL для сложных запросов. Визуальный режим предназначен для типовых запросов с одной метрикой, фильтрами, функцией и агрегацией.