Автоматическое создание задачи 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 см. в руководстве по спринтам.
Есть вопросы? Задайте вопрос в сообществе Atlassian.
Обзор
Это учебное руководство опирается на несколько компонентов, которые взаимодействуют друг с другом. В этом учебном руководстве вы научитесь следующему.
1. Настраивать автоматизацию Jira, чтобы создать комментарий к карточке проблемы Dynatrace с URL-ссылкой на задачу Jira.
2. Настраивать Dynatrace для отправки проблем в Jira.
3. Вызывать проблему в образце приложения, чтобы посмотреть, как Dynatrace обнаруживает проблему и автоматически создает задачу в Jira.
4. Настраивать запросы на создание задач Jira на странице релизов Dynatrace.
5. Очищать среду.
На этой диаграмме показаны компоненты данного учебного руководства и основное взаимодействие между ними.

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 [если])](https://dam-cdn.atl.orangelogic.com/AssetLink/645bqt1d0t8254g2p1lbf11637epe7fb.png)
Шаг 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 (Добавить новый запрос на отслеживание задачи).

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.
См. другие интеграции для Atlassian Open DevOps
О том, как настроить интеграцию Jira и Dynatrace, см. в другом нашем учебном руководстве «Как интегрировать Dynatrace и Jira для улучшения наблюдаемости.