Язык запросов
Язык запросов Monium Traces позволяет фильтровать трейсы и спаны по атрибутам. Запросы вводятся в строку поиска на странице Поиск трейсов и спанов. Интерфейс поддерживает автодополнение: начните вводить имя атрибута — система предложит доступные варианты, затем начните вводить значение — автодополнение сработает и для него.
Синтаксис
Запрос состоит из пар «ключ — значение», заключенных в фигурные скобки:
{ key="value", key="value", ... }
Условия внутри запроса объединяются по логике И (AND) — результат должен удовлетворять всем условиям одновременно.
Пример:
{ project="folder__b1g86q4m5vej********", service="api-gateway", span.duration>=1s }
Этот запрос вернет трейсы (или спаны), которые одновременно:
- относятся к проекту
folder__b1g86q4m5vej********; - принадлежат сервису
api-gateway; - содержат хотя бы один спан длительностью 1 секунда или больше.
Поддерживаемые ключи
Системные ключи
project— имя проекта (каталога). Обязательный ключ.cluster— окружение (например,production,staging).service— имя сервиса или приложения.
Атрибуты спанов
Помимо системных ключей, можно искать по атрибутам спанов. Часть атрибутов является стандартной:
span.name— имя спана.span.kind— тип спана:server,client,producer,consumerилиinternal.span.status— статус спана:OK,ERRORилиUNSET.span.duration— длительность спана.
Также можно искать по любым атрибутам, которые были добавлены при инструментации. Атрибуты указываются напрямую по имени:
{ project="folder__b1g86q4m5vej********", http.method="GET", http.status_code=200 }
Операторы
Строковые операторы
|
Оператор |
Описание |
Пример |
|
|
Точное совпадение или glob-шаблон |
|
|
|
Не равно (поддерживает glob) |
|
|
|
Точное совпадение без glob |
|
|
|
Не равно без glob |
|
|
|
Регулярное выражение (синтаксис re2 |
|
|
|
Не соответствует регулярному выражению |
|
Операторы сравнения
Для числовых значений и длительности:
|
Оператор |
Описание |
Пример |
|
|
Больше |
|
|
|
Больше или равно |
|
|
|
Меньше |
|
|
|
Меньше или равно |
|
Операторы длительности
Длительность указывается с единицами измерения:
ms— миллисекундыs— секундыm— минутыh— часы
Примеры:
{ span.duration>=500ms }
{ span.duration<2s }
{ span.duration>=1m }
Специальные селекторы
|
Селектор |
Описание |
Пример |
|
|
Любое значение (атрибут присутствует) |
|
|
|
Отсутствие атрибута |
|
|
|
Одно из нескольких значений (ИЛИ) |
|
Примеры запросов
Найти трейсы из сервиса api-gateway:
{ project="folder__b1g86q4m5vej********", service="api-gateway" }
Найти трейсы из production-окружения, исключая тестовые сервисы:
{ project="folder__b1g86q4m5vej********", cluster="production", service!="test-*" }
Найти спаны со статусом ERROR:
{ project="folder__b1g86q4m5vej********", span.status="ERROR" }
Найти медленные HTTP-запросы к конкретному эндпоинту:
{ project="folder__b1g86q4m5vej********", service="api-gateway", http.route="/users/:id", span.duration>=500ms }
Найти ошибки в запросах к базе данных:
{ project="folder__b1g86q4m5vej********", db.system="postgresql", span.status="ERROR" }
Найти клиентские и серверные спаны:
{ project="folder__b1g86q4m5vej********", span.kind="client|server" }
Найти спаны с retry-попытками:
{ project="folder__b1g86q4m5vej********", http.resend_count="*" }