nav-img
Evolution

Язык фильтрующих выражений

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

Чтобы отфильтровать логи:

  1. Перейдите в раздел Мониторинг → Логирование.

  2. В списке лог-групп выберите нужную.

  3. В поле Запрос введите фильтрующее выражение для поиска.

Фильтрация записей по полям логов

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

Поиск по фиксированным полям

Поле

Тип

Описание

Пример фильтрации

message

string

Сообщение в записи лога.

message: "query"

level

string

Уровень лога из списка: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR, CRITICAL, ALERT, EMERGENCY, FATAL.

level="ERROR"

service_name

string

Наименование сервиса.

service_name="notification"

trace_id

id

Уникальный идентификатор трассировки.

trace_id="00000000-1111-2222-3333-444444444444"

instance_id

id

Уникальный идентификатор источника логов.

instance_id="55555555-6666-7777-8888-99999999999999"

timestamp

integer

Время создания лога в формате ГГГГ-ММ-ДД ЧЧ:мм:сс.

timestamp = dt:"2024-09-31 12:00:00"

updated_at

datatime

Дата внесения записи в базу данных в формате ГГГГ-ММ-ДД ЧЧ:мм:сс.

updated_at >= "2024-09-31 12:00:00"

delete_at

datatime

Дата, после которой запись будет удалена по политике сохранения записей логов, в формате ГГГГ-ММ-ДД ЧЧ:мм:сс.

delete_at >= "2024-09-31 12:00:00"

Поиск по меткам

Вы можете искать записи по меткам в формате labels.<название метки>. Названия меток передаются в разделе Labels логов и могут отличаться в зависимости от модели данных.

Пример метки

Тип

Описание

Пример фильтрации

labels.source

string

Источник, который отправил сообщение, например backend или frontend.

labels.source = "backend"

labels.class_name

string

Название класса.

labels.class_name = "usr"

labels.service_version

string

Версия сервиса, который отправил сообщение.

labels.service_version = "6"

Форматы записи данных

Тип данных

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

string

"qwerty"

datatime

dt:"2023-05-01 12:00:00"

Array

[123,5.5,"bar",dt:"1984-01-01"]

Integer

123

Float

456.234

Bool

true, false

Null

null

Логические операторы

Логические операторы позволяют объединить в одном фильтре сразу несколько условий.

Оператор

Описание

Пример операции

AND

Определяет, что должны выполняться все условия, указанные в запросе.

message = "hello" AND labels.cluster_id="123456"

OR

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

message = "hello" OR labels.cluster_id="123456"

По порядку вычислений сначала выполняется оператор AND, затем — OR. Операторы AND и OR можно использовать в одном фильтре, разделяя условия запроса скобками и меняя порядок вычислений в запросе.

Пример фильтра для поиска сообщения уровней ERROR или WARN, источник которых — backend:

(level="ERROR" OR level="WARN") AND labels.source="backend"

Пример фильтра для поиска сообщений уровней ERROR или WARN от сервиса landing, источник которых — backend:

(level="ERROR" OR level="WARN") AND (labels.service_name="landing" AND labels.source="backend")

Операторы сравнения

Операторы сравнения позволяют находить:

  • значения, которые больше или меньше заданного;

  • строки, которые начинаются с нужного значения или заканчиваются им.

Сравнение значений

Оператор

Описание

Пример запроса

= или !=

Поиск значения, которое равно или не равно указанному в запросе.

labels.cluster_id = "123456" или labels.cluster_id != "123456"

<

Поиск значения, которое меньше, чем значение в запросе.

labels.cluster_id < "123456"

<=

Поиск значения, которое меньше или равно указанному в запросе.

labels.cluster_id <= "123456"

>

Поиск значения, которое больше, чем значение в запросе.

labels.cluster_id > "123456"

>=

Поиск значения, которое больше или равно указанному в запросе.

labels.cluster_id >= "123456"

Сравнение строк

Оператор

Описание

Пример запроса

starts_with

Поиск строк, которые начинаются с указанного значения.

message starts_with "123456"

ends_with

Поиск строк, которые заканчиваются указанным значением.

message ends_with "123456"

Операторы принадлежности

Операторы принадлежности определяют, должно ли заданное значение быть в списке.

Оператор

Описание

Пример запроса

in

Определяет, что указанное значение должно быть в списках.

labels.cluster_id in [ "12", "34", "56" ]

not_in

Определяет, что указанное значение не должно быть в списках.

labels.cluster_id not_in [ "12", "34", "56" ]