Автоматическое создание задачи Jira Software из проблемы, обнаруженной в Dynatrace

Автор: Rob Jahn, Dynatrace Технический директор по работе с партнерами и популяризатор DevOps

В этом учебном руководстве подробно описывается, как автоматически создать задачу Jira на основе проблемы, обнаруженной в Dynatrace. О том, как настроить интеграцию Jira и Dynatrace, см. в другом нашем учебном руководстве «Как интегрировать Dynatrace и Jira для улучшения наблюдаемости».

В этом примере серверная служба «customer» будет отключена, что приведет к ошибкам в работе сервиса «frontend». Эти ошибки будут обнаружены Dynatrace, и автоматически будут созданы задачи Jira.

Время

15 минут на прочтение. Прохождение учебного курса занимает 2–3 часа.

Аудитория

У вас есть права на администрирование всех проектов. Подробнее см. в разделе Управление правами на уровне проекта.

У вас есть право на администрирование среды Dynatrace. Подробнее см. в разделе Начало работы с Dynatrace.

У вас есть базовые знания о командах Linux.

ОБЯЗАТЕЛЬНОЕ УСЛОВИЕ

У вас есть среда Dynatrace: получите 15-дневный пробный период для Dynatrace.

Для запуска образца приложения, предоставленного Dynatrace, требуется хост-устройство Linux. Следуйте инструкциям по установке из файла README, в котором содержатся требования и инструкции по установке на виртуальную машину.

На этом же хост-устройстве Linux нужно установить набор сервисов Dynatrace OneAgent.

У вас есть аккаунт Jira Software. Начните работу с Jira здесь.

Хотите узнать больше?

Подробнее о работе со спринтами в Jira см. в руководстве по спринтам.

Обзор

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

1. Настраивать автоматизацию Jira, чтобы создать комментарий к карточке проблемы Dynatrace с URL-ссылкой на задачу Jira.

2. Настраивать Dynatrace для отправки проблем в Jira.

3. Вызывать проблему в образце приложения, чтобы посмотреть, как Dynatrace обнаруживает проблему и автоматически создает задачу в Jira.

4. Настраивать запросы на создание задач Jira на странице релизов Dynatrace.

5. Очищать среду.

На этой диаграмме показаны компоненты данного учебного руководства и основное взаимодействие между ними.

Диаграмма с использованием Dynatrace и Jira

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

2. Уведомление о проблемах с подробным контекстом.Davis — система искусственного интеллекта Dynatrace — использует высокоточные показатели, трассировки, журналы и реальные пользовательские данные, на основе которых создается единая сущностная модель. Детерминированный ИИ Davis используется для точного выявления первопричины проблемы. Davis не только обнаруживает точную причину, но и мгновенно предоставляет важный контекст. Вы узнаете, является ли причиной недостаток ресурсов или изменения в развертывании и даже кто за этим стоит. Вы можете воспроизводить проблемы, чтобы подробно узнать, почему они возникли и как их исправить.

3. Автоматическое создание задачи Jira. Интеграция Dynatrace и Jira позволяет автоматически создавать задачи для всех новых проблем, которые автоматически обнаруживаются в средах Dynatrace.

4. Обновление Dynatrace с помощью автоматизации Jira. Автоматизация Jira не требует написания кода и позволяет с легкостью создавать правила несколькими щелчками мыши. В веб-запросе к API Dynatrace используется идентификатор проблемы Dynatrace для обновления комментариев в карточке проблемы Dynatrace. 

5. Устранение проблемы и закрытие задачи Jira

Шаг 1. Остановите образец приложения, чтобы с помощью Dynatrace можно было обнаружить проблему доступности

На хосте Linux, где выполняется образец приложения, перейдите в каталог с файлом docker-compose.yaml и выполните следующую команду, чтобы остановить сервис:

sudo docker-compose -f docker-compose-services.yaml scale customer-service=0

Для проверки того, что он не выполняется, можно использовать следующую команду:

sudo docker ps

Шаг 2. Посмотрите на карточку проблемы Dynatrace

Через несколько минут проблема обнаружится, и Dynatrace создаст проблему. Отличие Dynatrace состоит в том, что это не оповещение. В Dynatrace используется детерминированный ИИ, который выполняет автоматический анализ дерева ошибок с учетом показателей, журналов, реальных пользовательских данных и событий. В результате создается карточка проблемы, в которой указывается влияние на бизнес, затронутые приложения и компоненты инфраструктуры, а также воспроизводимая история события и первопричина проблемы.

Окно проблем

Шаг 3. Изучите автоматически созданную задачу Jira

 В Jira появится новая задача с информацией о проблеме и точной URL-ссылкой на карточку проблемы Dynatrace.

Задача для проблемы

Шаг 4. Просмотрите комментарий Dynatrace

После создания задачи Jira нажмите URL-адрес проблемы Dynatrace, чтобы открыть карточку проблемы Dynatrace. Прокрутите вниз, и вы увидите комментарий, в котором указана URL-ссылка на задачу Jira. Это стало возможным благодаря добавлению интеллектуальных тегов Jira Automation в вызов API Dynatrace, выполненный правилом автоматизации Jira.

Прокрутка вниз карточки проблемы до комментария

** Профессиональный совет. Этот же принцип можно использовать для добавления любых новых комментариев Jira в качестве комментариев Dynatrace.  Для этого вы должны создать новое правило автоматизации, выбрать триггер When: Issue commented (Когда: задача прокомментирована) и использовать в качестве тела веб-хука выражение:

{

"comment": "{{issue.comments.last.body}} - Jira Issue: [{{issue.key}}]({{issue.url}})", "user": "{{issue.comments.last.author.displayName}}", "context": "Jira"

}

Экран об увеличении частоты сбоев

** Профессиональный совет. Уведомления о проблемах Dynatrace можно настроить так, чтобы передавать из Dynatrace в Jira дополнительную информацию, включая состояние проблемы, теги и затронутые объекты. Эти данные можно затем использовать для более сложной автоматизации, такой как назначение задачи, установка приоритета, связывание с компонентом или заполнение пользовательских полей в Jira. Например, автоматизация Jira «if block» (блок условия if [если]) может искать совпадение с тегом Dynatrace.

Окно If block (Блок условия if [если])

Шаг 5. Устраните проблему, перезапустив сервис образца приложения

На хосте Linux, где выполняется образец приложения, перейдите в каталог с файлом docker-compose.yaml и выполните следующую команду, чтобы перезапустить сервис:

sudo docker-compose -f docker-compose-services.yaml scale customer-service=1

Чтобы убедиться, что он выполняется, можно использовать следующую команду:

sudo docker ps

Шаг 6. Еще раз просмотрите приложение в Dynatrace

Просмотрите страницу сервиса frontend, и вы заметите, что сбои исчезли.

Окно частоты сбоев

Карточка проблемы Dynatrace также автоматически закроется.

Уведомление о частоте сбоев

Попробуйте создать еще несколько проблем

В приложении Dynatrace Orders есть заранее подготовленные проблемы, запрограммированные как разные версии. При программировании приложения был добавлен URL-адрес флажка возможности, который можно использовать для изменения версии, а следовательно, и поведения приложения. Версия 1 сервисов «order» и «customer» работает нормально, а при выборе версии 2 возникает проблема. 

Чтобы попробовать работу этих версий, изучите страницу Обзор приложения Dynatrace Orders.

Настройка запросов для задач Jira на странице релизов Dynatrace

На странице релизов Dynatrace отображаются запросы на отслеживание задач, включая статистику задач, связанную с объектами, отслеживаемыми в системе учета в режиме реального времени. 

Результаты запроса с фильтрацией

Шаг 1. Определите запрос JQL

В интерфейсе поиска задач Jira создайте выражение Jira Query Language (JQL), подобное показанному ниже.

project = DT AND status in (Backlog, "In Progress") AND component = frontend ORDER BY created DESC

Запрос задачи

Шаг 2. Создайте запросы на отслеживание задач в релизе

1. В Dynatrace перейдите на страницу Releases (Релизы) с помощью левого меню. 

2. На странице Releases (Релизы) нажмите кнопку Configure (Настроить).

Окно релизов в режиме реального времени

3. В настройках, на странице Release Issue Tracker Queries (Запросы на отслеживание задач в релизе), нажмите кнопку Add new issue tracker query (Добавить новый запрос на отслеживание задачи).

Стрелка, указывающая на Settings (Настройки) на левой навигационной панели

4. Введите следующие значения в полях формы нового запроса.

  • Issue Label (Метка задачи): dt-orders frontend Issues

  • Issue query (Запрос для задачи): project = DT AND status in (Backlog, "In Progress") AND component = frontend ORDER BY created DESC

  • Issue Theme (Тема задачи): Error (Ошибка)

  • Issue Tracker System (Система отслеживания задач): Jira

  • URL Target (Целевой URL-адрес): https://ВАША-КОМПАНИЯ.atlassian.net

  • User Name (Имя пользователя): идентификатор пользователя Jira в виде адреса электронной почты

  • Password (Пароль): оставьте пустым

  • Token (Токен): токен пользователя Jira, созданный вами ранее в ходе изучения руководства

5. Сохраните запрос.

Шаг 3. Выполните проверку

1. Вернитесь на страницу Releases (Релизы) с помощью левого меню. 

2. Вы должны увидеть новый запрос с количеством открытых задач.

Окно релизов в режиме реального времени

3. Если нажать строку задач, откроется Jira для просмотра этих очередей.

Очистить

1. Если для образца приложения используется хост по требованию, остановите его.

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

sudo docker-compose -f docker-compose-services.yaml down

Убедитесь, что контейнеры не запущены, с помощью команды

sudo docker ps

3. В Jira удалите проект, созданный вами для изучения этого руководства.

4. В Dynatrace удалите добавленные вами токен API и правило уведомления о проблеме.

Подробнее

Загрузите плагин Dynatrace Problem Integration for Jira из Atlassian Marketplace.

Задавайте вопросы (и давайте советы) в нашем сообществе Dynatrace.

Подробнее о возможностях интеграции Dynatrace и Atlassian см. здесь

Подробнее об интеграции Dynatrace и Atlassian (и о том, как работать не интенсивнее, но эффективнее) см. здесь.

Посмотрите, как работают решения Atlassian, Dynatrace и Keptn, на этом семинаре по производительности Dynatrace.

О том, как настроить интеграцию Jira и Dynatrace, см. в другом нашем учебном руководстве «Как интегрировать Dynatrace и Jira для улучшения наблюдаемости.

Рекомендовано для вас

Сообщество DevOps

Образовательные программы DevOps

Начните работу бесплатно