Автоматизированная сортировка и создание заявок об ошибках

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

Автоматизированная сортировка и создание заявок об ошибках

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

Введение

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

  • Обнаруживать ошибки как можно раньше, до того как они станут заметны клиентам.
  • Просматривать и приоритизировать новые обнаруженные проблемы и обеспечивать чёткое определение ответственного за каждый элемент.
  • Повышать качество выпускаемого продукта.

Целевая аудитория

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

Сценарий

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

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

Объём делает невозможным ручной анализ, а большое количество команд добавляет сложность доставки нужных строк логов нужным командам.

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

Убедитесь, что все перечисленные условия выполнены, прежде чем начать.

Доступ и разрешения

  • У вас должны быть необходимые разрешения для настройки и доступа к инструментам мониторинга в Ключ-АСТРОМ.
  • У вас должны быть разрешения на загрузку данных логов в Ключ-АСТРОМ.
  • Убедитесь, что включены следующие разрешения:
    • storage:logs:read. Инструкции см. в разделе Настройка разрешений для логов.
    • Workflows: разрешения на доступ, просмотр, запись и выполнение рабочих процессов. Подробности см. в разделе Авторизация. Вам следует установить разрешения, необходимые Workflows для выполнения действий от вашего имени. Предоставьте разрешения Workflows (позволяет рабочему процессу преобразовывать полученные результаты в заявки Jira). Чтобы получить доступ к разрешениям, перейдите в меню Настройки в правом верхнем углу приложения Workflows и выберите Настройки авторизации.
  • Вы можете интегрировать Ключ-АСТРОМ с различными инструментами и фреймворками отслеживания ошибок, используемыми в вашем пайплайне.

Знания

  • Вы понимаете, как работает Ключ-АСТРОМ.
  • Вы знаете, как настроить Дашборды Ключ-АСТРОМ и системы оповещения.
  • Вы знаете, как загружать данные логов в Ключ-АСТРОМ (Загрузка логов через ЕдиныйАгент), в частности с помощью API Ключ-АСТРОМ (API загрузки логов) или аналогичных методов загрузки данных.
  • У вас есть базовое понимание Языка запросов Ключ-АСТРОМ и того, как использовать запросы DQL.
  • Вы знаете, как настроить автоматизированные рабочие процессы в Ключ-АСТРОМ для автоматизации создания заявок в Jira.
  • У вас есть знания о том, как создать приложение Ключ-АСТРОМ, которое взаимодействует с платформой Ключ-АСТРОМ через API.

Внутренний сервис

У вас есть внутренний сервис, который:

  • Может группировать данные логов.
  • Может обрабатывать данные логов на основе их содержимого сообщений.
  • Может хранить сгруппированные данные логов.
  • Может предоставлять сгруппированные данные логов через API.
  • Расположен в вашей инфраструктуре и доступен через EdgeConnect из любого приложения Ключ-АСТРОМ в ваших тенантах.

Как это работает

Автоматизированная сортировка и создание заявок об ошибках в Ключ-АСТРОМ состоит из трёх этапов:

  • Загрузка данных логов.
  • Группировка и обработка данных логов.
  • Использование рабочих процессов для автоматизированного создания заявок в Jira.

Поток данных приложения распределения ошибок на совещании

Шаги

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

Загрузка данных логов

Загрузите данные логов и событий в Ключ-АСТРОМ с помощью ЕдиногоАгента или API Ключ-АСТРОМ:

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

Группировка данных логов

Используя ваш внутренний сервис, агрегируйте и группируйте данные логов и объединяйте их в бизнес-события. Фильтруйте события логов по серьёзности (критические и высокие) и временной метке (самые новые события). Создайте конкретные запросы DQL для получения логов и настройте кастомизированный обзор.

Следующие примеры запросов позволяют фильтровать данные логов с определённым значением loglevel в логах ЕдиногоАгента (на основе определённого log.source) и данные логов с определённым значением loglevel для конкретных групп процессов (на основе dt.entity.process_group).

Пример запроса DQL для получения данных логов ЕдиногоАгента за определённый временной диапазон, содержащих определённое значение loglevel

fetch logs, timeframe:"2023-10-04T00:00:00Z/2023-10-04T04:00:00Z"
| filter startsWith(log.source, "/var/log/astromkey/oneagent/java/")
| filter loglevel == "WARN" OR loglevel == "SEVERE"

Пример запроса DQL для получения данных логов для известных групп процессов, содержащих определённое значение loglevel

fetch logs, timeframe:"2023-10-01T09:03:18Z/2023-10-02T09:03:18Z", scanLimitGBytes: -1

| filter dt.entity.process_group == "PROCESS_GROUP-9C77F43CE98EAA17" OR dt.entity.process_group == "PROCESS_GROUP-a3444fa7ad1c3d41" OR dt.entity.process_group == "PROCESS_GROUP-e50850ceefbd9c7f" OR dt.entity.process_group == "PROCESS_GROUP-689574f4e137425c" OR dt.entity.process_group == "PROCESS_GROUP-37925f9c37724091"

| filter ((loglevel == "WARN" OR loglevel == "WARNING" OR loglevel == "SEVERE" OR loglevel == "ERROR" OR loglevel == "CRITICAL" OR loglevel == "ALERT"))

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

Обработайте сообщение лога. Для обработки сообщения лога разделите сообщение на токены и классифицируйте их как обязательное слово (условно с префиксом ##), слово, разделитель и нерелевантное слово (динамические части лога, такие как ID или временные метки). Группирующее сообщение лога затем строится как имя класса (если присутствует), плюс первые четыре более релевантных слова, плюс все оставшиеся обязательные слова.

Таким образом, записи логов группируются по:

  • Тегам.
  • Метаданным группы.
  • Связанным событиям группы процессов.

Создание рабочего процесса Ключ-АСТРОМ

Создайте рабочий процесс на основе бизнес-события для автоматического создания и назначения заявок Jira.

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

Показать соответствующую задачу рабочего процесса

Рабочий процесс, в котором событие запускает создание заявки Jira

Создание приложения Ключ-АСТРОМ

Создайте приложение Ключ-АСТРОМ для потребления и представления сгруппированных данных логов. Используя AppEngine Ключ-АСТРОМ, создайте приложение-дашборд, которое потребляет сгруппированные данные логов и на основе этой предварительной сортировки и проверки создаёт задачи Jira в правильных проектах, назначенных нужным командам. Подключите приложение-дашборд к внутреннему сервису (через EdgeConnect) и выполняйте вызовы API. Приложения Ключ-АСТРОМ также могут взаимодействовать с вашими локальными системами, которые вы можете запускать в корпоративной сети.

Приложение для распределения записей логов по серьёзности

Приложение-дашборд будет анализировать логи ошибок или предупреждений, которые указывают на ошибки в коде или конфигурации системы, требующие улучшения (например, низкий CPU или низкое дисковое пространство). Оно может показать в обзоре сгруппированные логи, для которых заявки и комментарии могут быть созданы автоматически или вручную.

Приложение для распределения записей логов по серьёзности

Заключение

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