Форматировщик и проверщик запросов PromQL

ДанныеРазработчик
Реклама · УДАЛИТЬ?

Или
Вызовы функций и бинарные операторы переносятся на новую строку, если длина строки превышает заданную ширину.
Используется как поле `record:`. Должно соответствовать правилам названия Prometheus (a-z, 0-9, _, :).
Реклама · УДАЛИТЬ?

Гид

Программа форматирования и проверки запросов PromQL

Мгновенное форматирование и проверка запросов PromQL

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

Как использовать

  1. Вставьте свой запрос PromQL в область ввода или загрузите .promql или текстовый файл с помощью выбора файла.
  2. Выберите ширину отступа — 2 пробела, 4 пробела или буквальный символ табуляции — для любых расширений на несколько строк.
  3. Установите максимальную длину строки. Вызовы функций, наборы совпадений меток и низкоквалифицированные логические операторы (and, or, unless) переносятся на отдельные строки, если длина отформатированной строки превышает заданную ширину.
  4. Переключать Всегда разбивайте если вы хотите, чтобы каждая агрегация, список аргументов функции и набор совпадений меток находились на отдельной строке независимо от длины.
  5. Переключать Переносить как правило записи и предоставьте имя метрики (например, job:http_errors:rate5m) для вставки отформатированного запроса как готового к вставке правила записи Prometheus в формате YAML.
  6. Скопируйте отформатированный результат или скачайте его как .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 — нормализованный вывод делает операторы приоритета и группировку агрегаций очевидными для читателей, изучающих язык.

Часто задаваемые вопросы

  1. Что такое PromQL?

    PromQL (язык запросов Prometheus) — это язык запросов для чтения, используемый в системе мониторинга Prometheus и совместимых бэкендах, таких как Thanos, Mimir, Cortex, VictoriaMetrics и Amazon Managed Service for Prometheus. Он специально разработан для работы с временным рядом: каждое выражение оценивается как вектор мгновенных значений, вектор временного диапазона, скаляр или строка, и операторы понимают совпадение меток, группировку и семантику скорости во времени, что не поддерживается общими SQL-языками.

  2. Какова разница между мгновенным вектором и вектором диапазона?

    Мгновенный вектор — это набор образцов метрик в определенный момент времени — например, последнее значение каждой серии, соответствующей http_requests_total. Вектор диапазона — это набор образцов за определенный временной интервал, записанный в виде диапазона с указанием длительности, например [5m]. Векторы диапазона не могут отображаться напрямую; они являются входными данными для функций, таких как rate(), increase() и avg_over_time(), которые сжимают диапазон обратно в мгновенный вектор.

  3. Как различаются `by` и `without` в агрегациях?

    Оба изменяют поведение группировки агрегационных операторов, таких как sum и avg. Ключевое слово `by` сохраняет только указанные метки в выходе, поэтому sum by (job) (rate(...)) сжимает все метки, кроме job. Ключевое слово `without` сохраняет все метки, кроме указанных, поэтому sum without (instance) (rate(...)) сохраняет все другие измерения. Равнозначные группировки могут быть записаны и по-другому; команды обычно выбирают одну из них для согласованности.

  4. Что такое правило записи и зачем его предварительно вычислять?

    Правило записи — это именованное выражение PromQL, которое оценивается Prometheus по расписанию и записывается как новая метрика. Предварительное вычисление сложного выражения — например, 5-минутного показателя ошибок по сервису — позволяет дашбордам и правилам оповещения сразу обращаться к результату, вместо повторного вычисления всего выражения при каждом обновлении. Обычно правила называются по шаблону level:metric:operation, например job:http_requests_errors:rate5m, чтобы их смысл был очевиден из имени метрики.

  5. Что делают `on`, `ignoring`, `group_left` и `group_right`?

    Эти ключевые слова управляют тем, как PromQL соединяет серии с двух сторон бинарной операции. По умолчанию Prometheus требует одинаковых наборов меток с обеих сторон; `on(label, ...)` и `ignoring(label, ...)` позволяют ограничить или ослабить ключ соединения. `group_left` и `group_right` превращают соединение в одностороннее или многократное соединение, копируя метки с более высокой кардинальности в результат. Это эквивалентно подсказке SQL для временных рядов.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?