Форматировщик и проверщик запросов PromQL
Гид
Мгновенное форматирование и проверка запросов PromQL
Программа форматирования и проверки запросов PromQL улучшает запросы, которые вы вводите в Prometheus и другие совместимые базы временных рядов. Введите метрическое выражение и инструмент автоматически нормализует пробелы вокруг бинарных операторов, размещает агрегации, вызовы функций и совпадения меток на отдельные строки при увеличении длины запроса, и выявляет несбалансированные скобки, несоответствующие фигурные скобки, отсутствующие временные интервалы и другие синтаксические ошибки до того, как вы вставите запрос в дашборд или правило оповещения. Все действия выполняются локально в вашем браузере, поэтому запросы — которые часто содержат внутренние имена метрик и метки — никогда не покидают ваше устройство.
Как использовать
- Вставьте свой запрос PromQL в область ввода или загрузите
.promqlили текстовый файл с помощью выбора файла. - Выберите ширину отступа — 2 пробела, 4 пробела или буквальный символ табуляции — для любых расширений на несколько строк.
- Установите максимальную длину строки. Вызовы функций, наборы совпадений меток и низкоквалифицированные логические операторы (
and,or,unless) переносятся на отдельные строки, если длина отформатированной строки превышает заданную ширину. - Переключать Всегда разбивайте если вы хотите, чтобы каждая агрегация, список аргументов функции и набор совпадений меток находились на отдельной строке независимо от длины.
- Переключать Переносить как правило записи и предоставьте имя метрики (например,
job:http_errors:rate5m) для вставки отформатированного запроса как готового к вставке правила записи Prometheus в формате YAML. - Скопируйте отформатированный результат или скачайте его как
.promqlфайл.
Возможности
- Сознательное расстояние между элементами — добавляет один пробел вокруг арифметических, сравнительных и логических операторов, сохраняя совпадения меток внутри
{ }скобок. - Умное форматирование на нескольких строках — разбивает длинные запросы на
and/or/unlessпервое, затем на границы аргументов функции, затем на отдельные совпадения меток, чтобы результат оставался легко сканируемым. - Поддержка агрегации и векторных совпадений — распознаёт
sum,avg,topk,quantileи подобные элементы вместе сby,without,on,ignoring,group_leftиgroup_rightмодификаторами. - Токенизатор длительности и подзапросов — разбирает составные временные интервалы, такие как
1h30mи подзапросы, такие как[5m:1m]как единые единицы, чтобы они не разрывались на части. - Проверка синтаксиса — обнаруживает несбалансированные скобки, скобки и фигурные скобки, несоответствующие открывающие и закрывающие скобки, неверные тела совпадений меток, неверные диапазоны индексов и незавершённые строки, каждый из которых указывается с номером строки.
- Экспорт правила записи — опционально переносит отформатированный запрос как блок правила записи Prometheus в формате YAML, используя литеральный блок скаляр для многострочных выражений, чтобы сохранить отступы.
Распространенные случаи использования
- Очистка временных запросов, скопированных из редакторов панелей Grafana, до их вставки в дашборды или правила оповещения.
- Подготовка выражений PromQL для проверки кода — длинные запросы по ошибочному или насыщению становятся легко читаемыми изменениями, когда каждый ветвь находится на отдельной строке.
- Обнаружение тонких синтаксических ошибок (отсутствующий временной интервал, лишняя запятая, незакрытый
{после редактирования совпадений меток) без необходимости проходить через рабочий экземпляр Prometheus. - Преобразование сырого запроса в YAML правила записи Prometheus для предварительных потоков агрегации.
- Обучение PromQL — нормализованный вывод делает операторы приоритета и группировку агрегаций очевидными для читателей, изучающих язык.
Часто задаваемые вопросы
-
Что такое PromQL?
PromQL (язык запросов Prometheus) — это язык запросов для чтения, используемый в системе мониторинга Prometheus и совместимых бэкендах, таких как Thanos, Mimir, Cortex, VictoriaMetrics и Amazon Managed Service for Prometheus. Он специально разработан для работы с временным рядом: каждое выражение оценивается как вектор мгновенных значений, вектор временного диапазона, скаляр или строка, и операторы понимают совпадение меток, группировку и семантику скорости во времени, что не поддерживается общими SQL-языками.
-
Какова разница между мгновенным вектором и вектором диапазона?
Мгновенный вектор — это набор образцов метрик в определенный момент времени — например, последнее значение каждой серии, соответствующей http_requests_total. Вектор диапазона — это набор образцов за определенный временной интервал, записанный в виде диапазона с указанием длительности, например [5m]. Векторы диапазона не могут отображаться напрямую; они являются входными данными для функций, таких как rate(), increase() и avg_over_time(), которые сжимают диапазон обратно в мгновенный вектор.
-
Как различаются `by` и `without` в агрегациях?
Оба изменяют поведение группировки агрегационных операторов, таких как sum и avg. Ключевое слово `by` сохраняет только указанные метки в выходе, поэтому sum by (job) (rate(...)) сжимает все метки, кроме job. Ключевое слово `without` сохраняет все метки, кроме указанных, поэтому sum without (instance) (rate(...)) сохраняет все другие измерения. Равнозначные группировки могут быть записаны и по-другому; команды обычно выбирают одну из них для согласованности.
-
Что такое правило записи и зачем его предварительно вычислять?
Правило записи — это именованное выражение PromQL, которое оценивается Prometheus по расписанию и записывается как новая метрика. Предварительное вычисление сложного выражения — например, 5-минутного показателя ошибок по сервису — позволяет дашбордам и правилам оповещения сразу обращаться к результату, вместо повторного вычисления всего выражения при каждом обновлении. Обычно правила называются по шаблону level:metric:operation, например job:http_requests_errors:rate5m, чтобы их смысл был очевиден из имени метрики.
-
Что делают `on`, `ignoring`, `group_left` и `group_right`?
Эти ключевые слова управляют тем, как PromQL соединяет серии с двух сторон бинарной операции. По умолчанию Prometheus требует одинаковых наборов меток с обеих сторон; `on(label, ...)` и `ignoring(label, ...)` позволяют ограничить или ослабить ключ соединения. `group_left` и `group_right` превращают соединение в одностороннее или многократное соединение, копируя метки с более высокой кардинальности в результат. Это эквивалентно подсказке SQL для временных рядов.
Установите наши расширения
Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска
恵 Табло результатов прибыло!
Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!
Подписаться на новости
все Новые поступления
всеОбновлять: Наш последний инструмент was added on Июн 26, 2026
