[Документация Yandex Cloud](../../../index.md) > [Monium](../../index.md) > [Трейсы](../index.md) > Работа с трейсами > Язык запросов

# Язык запросов

Язык запросов Monium Traces позволяет фильтровать трейсы и спаны по атрибутам. Запросы вводятся в строку поиска на странице [Поиск трейсов и спанов](traces-explorer.md). Интерфейс поддерживает автодополнение: начните вводить имя атрибута — система предложит доступные варианты, затем начните вводить значение — автодополнение сработает и для него.

## Синтаксис {#syntax}

Запрос состоит из пар «ключ — значение», заключенных в фигурные скобки:

```
{ key="value", key="value", ... }
```

Условия внутри запроса объединяются по логике **И** (AND) — результат должен удовлетворять всем условиям одновременно.

Пример:

```
{ project="folder__b1g86q4m5vej********", service="api-gateway", span.duration>=1s }
```

Этот запрос вернет трейсы (или спаны), которые одновременно:
* относятся к проекту `folder__b1g86q4m5vej********`;
* принадлежат сервису `api-gateway`;
* содержат хотя бы один спан длительностью 1 секунда или больше.

## Поддерживаемые ключи {#keys}

### Системные ключи {#system-keys}

* `project` — имя проекта (каталога). Обязательный ключ.
* `cluster` — окружение (например, `production`, `staging`).
* `service` — имя сервиса или приложения.

### Атрибуты спанов {#span-attributes}

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

* `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 }
```

## Операторы {#operators}

### Строковые операторы {#string-operators}

#|
|| Оператор | Описание | Пример ||
|| `=` | Точное совпадение или glob-шаблон | `service="api-*"` — сервисы, начинающиеся с `api-` ||
|| `!=` | Не равно (поддерживает glob) | `service!="test-*"` — все сервисы, кроме тех, что начинаются с `test-` ||
|| `==` | Точное совпадение без glob | `span.name=="GET /users"` — только точное совпадение ||
|| `!==` | Не равно без glob | `span.name!=="GET /users"` ||
|| `=~` | Регулярное выражение (синтаксис [re2](https://github.com/google/re2/wiki/Syntax)) | `span.name=~"GET /users/[0-9]+"` ||
|| `!~` | Не соответствует регулярному выражению | `span.name!~"POST.*"` ||
|#

### Операторы сравнения {#comparison-operators}

Для числовых значений и длительности:

#|
|| Оператор | Описание | Пример ||
|| `>` | Больше | `span.duration>500ms` ||
|| `>=` | Больше или равно | `span.duration>=1s` ||
|| `<` | Меньше | `span.duration<100ms` ||
|| `<=` | Меньше или равно | `span.duration<=2s` ||
|#

### Операторы длительности {#duration-operators}

Длительность указывается с единицами измерения:

* `ms` — миллисекунды
* `s` — секунды
* `m` — минуты
* `h` — часы

Примеры:

```
{ span.duration>=500ms }
{ span.duration<2s }
{ span.duration>=1m }
```

### Специальные селекторы {#special-selectors}

#|
|| Селектор | Описание | Пример ||
|| `*` | Любое значение (атрибут присутствует) | `http.method="*"` — все спаны с атрибутом `http.method` ||
|| `-` | Отсутствие атрибута | `http.method="-"` — спаны без атрибута `http.method` ||
|| `\|` | Одно из нескольких значений (ИЛИ) | `span.kind="client\|server"` — спаны с типом `client` или `server` ||
|#

## Примеры запросов {#examples}

Найти трейсы из сервиса `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="*" }
```