Запрос и фильтрация логов

Материал из Документация Ключ-АСТРОМ
Версия от 18:19, 6 октября 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Запрос и фильтрация логов = В приложении '''Логи''' можно строить запросы, использовать фильтры, искать определённые строки логов и многое другое. == Построение запроса в Логах == Стройте запросы к логам, указывая сегмент и условие фильтрации с ключами и...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Запрос и фильтрация логов

В приложении Логи можно строить запросы, использовать фильтры, искать определённые строки логов и многое другое.

Построение запроса в Логах

Стройте запросы к логам, указывая сегмент и условие фильтрации с ключами и значениями, используя поисковые термины, операторы сравнения и логические операторы.

  • Сегмент: общий фильтр для данных наблюдаемости в приложениях на платформе Ключ-АСТРОМ.
  • Ключ: поле или атрибут, по которому нужно фильтровать.
  • Значение: конкретное искомое значение.
  • Логический оператор: соединяет несколько условий фильтрации. По умолчанию все условия фильтрации соединяются оператором И.
  • Оператор сравнения: определяет тип сравнения.

Используйте поле фильтра в приложении Логи, чтобы добавлять ключи и значения в фильтр автоматически. Используйте выбор даты, чтобы применить правильный временной диапазон для запроса. Выберите Запустить запрос, чтобы выполнить запрос. После того как запрос вернёт записи в таблице результатов, можно искать ключевые слова в этих данных. Используйте поле Поиск в результатах, чтобы отфильтровать таблицу по ключевому слову. Эта фильтрация не выполняет новый запрос, а только показывает уже возвращённые и загруженные результаты в браузере.

Использование сегментов

Применяйте фильтр сегмента к запросу везде, где это возможно. Сегменты позволяют фильтровать логи и другие данные наблюдаемости с помощью единообразного фильтра. Сегменты удобны для ограничения запросов только определёнными бакетами, что сокращает объём данных, которые нужно сканировать для получения релевантных результатов. Подробнее см. раздел Сегментация логов по бакету и Лучшие практики для логов. Сегменты позволяют сохранять и повторно использовать часто используемые фильтры, применимые в Логах и других приложениях Ключ-АСТРОМ.

Изучение недавних фильтров и закрепление фильтров

Приложение Логи сохраняет недавно использованные фильтры, чтобы их можно было повторно применить одним нажатием. Также можно сохранять фильтры, закрепляя их. Выберите поле фильтра и проверьте раздел Недавно использованные фильтры. В разделе отображаются фильтры, которые вы недавно применяли, самые последние — сверху. По мере ввода нового условия фильтрации этот список сокращается, чтобы соответствовать похожим условиям из недавно использованных фильтров. Выберите Закрепить фильтр, чтобы закрепить любой созданный фильтр. Когда поле фильтра пустое, выберите его и прокрутите вниз до раздела Закреплённые фильтры, чтобы просмотреть ранее закреплённые фильтры. Чтобы открепить фильтр, выберите Закрепить фильтр ещё раз.

Поиск фразы в логах

Если нужно найти логи, содержащие определённую фразу, есть несколько вариантов — от самого широкого до более узкого фильтрования.

Поиск по всем полям

Используйте * вместо имени ключа и ~ в качестве оператора сравнения, чтобы искать фразу по всем полям записи лога, соответствующим вашим фильтрам. Например, фильтр * ~ "failed to charge card" соответствует логам, содержащим эту фразу в любом поле. Это эквивалентно использованию команды DQL search.

Поиск по content

Обычно исходная полезная нагрузка лога сохраняется в поле content записи лога. Ограничьте поиск этим полем, чтобы повысить производительность запроса. Например, фильтр content ~ "failed to charge card" соответствует логам, содержащим эту фразу в поле content. Это эквивалентно использованию строковой функции DQL matchesPhrase.

Подстановочный знак в значении

Можно также указать только часть значения с подстановочным знаком * в поисковом термине. Например, фильтр content = "*card*" соответствует логам, содержащим фразу card в поле content. Это эквивалентно использованию строковой функции DQL matchesValue. Полный справочник см. в разделе Поле фильтра.

Фильтрация по полю с несколькими значениями

По умолчанию все условия фильтрации соединяются логическим оператором И. Например, status = ERROR status = WARN не вернёт результатов, так как одна запись лога не может иметь два статуса. Чтобы запросить поле с разными значениями, используйте оператор in. Например, status in (ERROR, WARN) возвращает логи, имеющие статус ERROR или WARN. В качестве альтернативы можно использовать ИЛИ для объединения нескольких условий фильтрации.

Фильтрация по полям логов со структурой JSON

Когда ваши логи имеют поля с данными в формате JSON, можно фильтровать по вложенным атрибутам JSON. Для этого можно:

  • Ввести условие фильтрации вручную в поле фильтра.
  • Использовать меню детализации в режиме JSON при просмотре конкретной записи лога.

Ввод условия фильтрации вручную

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

fieldname$.attributename = value

Например, чтобы отфильтровать по вложенному атрибуту loyalty_level из поля content, используйте следующее условие фильтрации:

content$.loyalty_level = "silver"

Если имя атрибута само использует точечную нотацию, используйте синтаксис с квадратными скобками:

fieldname$["attribute.name"] = value

Например, чтобы отфильтровать по вложенному атрибуту process.technology из поля content, используйте следующее условие фильтрации:

content$["process.technology"] = "nodejs"

Использование меню детализации в режиме JSON

Можно также фильтровать логи по вложенным атрибутам JSON, выбирая нужные вложенные атрибуты на панели сведений о записи лога в режиме JSON. При просмотре записи лога со структурой JSON на панели сведений о записи лога можно переключать представление между режимами JSON и Raw. Режим JSON предоставляет меню детализации для всех вложенных атрибутов записи лога, что позволяет фильтровать или исключать данные по значению нужного вложенного атрибута либо искать данные, где это значение вложенного атрибута существует или не существует.

  • В Логах выберите нужную запись лога. Справа откроется панель сведений о записи лога.
  • На панели сведений о записи лога разверните Content и выберите JSON.
  • Используйте Развернуть раздел для перехода к нужному вложенному атрибуту JSON.
  • Выберите вложенный атрибут JSON и выберите нужный вариант фильтрации. Соответствующее условие фильтрации автоматически добавляется в поле фильтра, которое затем можно дополнительно уточнить.

Использование автоматических подсказок для фильтров логов

Приложение Логи предоставляет автодополнение для ключей, операторов сравнения и значений.

  • Выберите поле фильтра, чтобы получить список подсказок для наиболее распространённых или релевантных полей для фильтрации.
  • После выбора поля вы получите список подсказок для операторов сравнения.
  • После выбора оператора сравнения вы получите список подсказок для значений этого поля. Это не поддерживается для поля content.

Подсказки значений берутся из ваших данных логов, запрашиваемых в фоновом режиме без затрат на запрос. Приложение возвращает до 100 различных значений на поле, поэтому не все значения могут появиться в списке. Подсказки отражают данные из выбранного временного диапазона (до последних 24 часов). Активные фильтры не влияют на то, какие значения появляются. Если ожидаемое значение не появляется, введите его вручную или создайте сегмент с этим полем и значением для быстрого повторного использования.