Настройка оповещений на основе событий, извлечённых из логов

Материал из Документация Ключ-АСТРОМ

Настройка оповещений на основе событий, извлечённых из логов

Загруженные логи могут быть триггерами для открытия новых проблем ИИ. Используя события ИИ на основе логов, вы получите немедленные оповещения, как только определённая вами запись лога будет загружена. Следуйте этому руководству, чтобы узнать больше об извлечении событий из логов. Если вам нужно установить пороги для оповещений, следуйте инструкциям в разделе Настройка пользовательских оповещений на основе метрик, извлечённых из логов.

Предварительные требования

  • Необязательно: вы настроили загрузку логов.
  • У вас есть необходимые разрешения для настройки OpenPipeline. Например, разрешения, предоставляемые политикой по умолчанию: Обработка и хранение данных.

Шаги

В этом примере мы откроем новую проблему ИИ, когда будут загружены определённые записи, содержащие конкретную фразу.

1. Найдите логи, которые должны запускать оповещения

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

fetch logs
| filter matchesPhrase(content, "Dropping data because sending_queue is full")
| sort timestamp desc

Результаты логов

  • Если ваш запрос DQL использует parse, fieldsAdd или другие преобразования, вам следует добавить правило обработки, чтобы установить эти поля при загрузке.
  • Чтобы найти, какой пайплайн обрабатывает ваши логи, выберите запись лога в Логах и проверьте поле dt.openpipeline.pipelines. Используйте это значение при выборе пайплайна в настройках OpenPipeline.

2. Извлеките событие ИИ в OpenPipeline

Добавьте конфигурацию извлечения события ИИ в OpenPipeline.

  • Откройте Настройки > Обработка и контекстуализация > OpenPipeline > Логи > Пайплайны.
  • Найдите пайплайн, который хотите изменить, или добавьте новый пайплайн.
  • Выберите > Редактировать. Откроется страница конфигурации пайплайна.
  • Выберите этап ИИ и добавьте процессор события ИИ. Задайте сопоставление DQL. Сопоставление устанавливает условие для события, которое должно быть извлечено. Это подмножество условий фильтрации в одном операторе DQL. В поле Условие сопоставления используйте сопоставление, как показано ниже.
matchesPhrase(content, "Dropping data because sending_queue is full")

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

  • Задайте свойства события. Свойства события — это метаданные, которые будет содержать ваше событие при запуске. Вы можете переопределить любое поле из записи лога. В нашем примере мы переопределим поле dt.source_entity, чтобы оповещения были связаны с сущностями для анализа первопричин ИИ. В Шаблоне события задайте следующие пары «ключ-значение»:
    • Установите event.type в CUSTOM_ALERT.
    • Установите event.description в Dropping data because sending_queue is full. Try increasing queue_size..
    • Установите event.name в OpenTelemetry exporter failure.
    • Установите dt.source_entity в {dt.source_entity}.

Извлечение события ИИ из логов через OpenPipeline

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

Поля, которые вычисляются или добавляются на этапе «Обработка», не могут использоваться в условиях сопоставления динамических маршрутов, поскольку маршрутизация оценивается до «Обработки». Это включает поля, добавленные самой платформой, такие как dt.entity.service. Полный список полей с этим ограничением см. в разделе «Поля с ограничениями для всех областей конфигурации».

  • Перейдите в Настройки > Обработка и контекстуализация > OpenPipeline > Логи > Динамическая маршрутизация.
  • Выберите Динамический маршрут и задайте:
    • Имя: например, используйте Dropping data alert route.
    • Условие сопоставления: используйте то же условие, что и сопоставление события ИИ, чтобы маршрут сужал данные до записей, которые вы действительно хотите обработать.
matchesPhrase(content, "Dropping data because sending_queue is full")
  • Пайплайн: выберите новый пайплайн.
  • Выберите Добавить. Маршруты оцениваются сверху вниз, и побеждает первый совпавший маршрут. Если у вас есть другие маршруты, которые могут соответствовать тем же логам, разместите этот маршрут выше них.

3. Откройте проблему в приложении «Проблемы»

Когда будет извлечено первое событие ИИ, откроется новая проблема. Если в течение периода тайм-аута, определённого в dt.davis.event_timeout, не будет новых событий, проблема будет закрыта автоматически. Тайм-аут по умолчанию — 15 минут.

Заключение

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

  • Оно обеспечивает немедленное/оповещение в реальном времени.
  • Дополнительный обзор совпадающих данных во времени не требуется.

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

Дополнительная литература

Дополнительную информацию о свойствах событий можно найти в соответствующем разделе.