根据在 Dynatrace 中检测到的问题自动创建 Jira Software 事务

按 Rob Jahn、Dynatrace 技术合作伙伴经理兼 DevOps 布道师
本教程详细介绍如何根据 Dynatrace 检测到的问题自动创建 Jira 事务。请参阅我们的其他教程(如何集成 Dynatrace 和 Jira 以提高可观察性)以了解如何设置 Jira 和 Dynatrace 集成。
对于此用例,“客户”后端服务将被关闭,从而会导致“前端”服务出错。然后,Dynatrace 将检测到这些错误并自动创建 Jira 事务。
时间
15 分钟阅读。在 2-3 个小时内完成。
观众
先决条件
您已拥有 Dynatrace 环境 - 获取 Dynatrace 的 15 天免费试用。
运行 Dynatrace 提供的示例应用需要 Linux 主机。有关在虚拟机上安装的要求和说明,请按照本自述文件中的安装说明进行操作。
该 Linux 主机需要安装 Dynatrace OneAgent。
您已拥有 Jira Software 帐户。点击此处开始使用 Jira。
想了解更多?
有关在 Jira 中使用冲刺的更多信息,请参阅冲刺教程。
有疑问?咨询 Atlassian 社区。
概述
本教程取决于几个相互交互的组成部分。在本教程中,您将:
1. 配置 Jira Automaton 以创建 Dynatrace 问题卡片评论,其中包含返回 Jira 事务的 URL。
2. 配置 Dynatrace 以将问题推送给 Jira。
3. 在示例应用中触发问题,然后查看 Dynatrace 如何检测问题并自动创建 Jira 事务。
4. 在 Dynatrace 发布页面上配置 Jira 事务查询。
5. 清理您的环境。
此图显示了本教程的组成部分,以及它们之间的基本交互。

1. 使用 Dynatrace 监控应用 — 在本教程中,Dynatrace 将从运行示例应用的主机上安装的 Dynatrace 代理收集指标。所有数据都集中在中央 Dynatrace 租户中,该租户还提供用于管理以及由 AI 提供支持的问题检测功能的 Web 界面。
2. 具有详细上下文的问题通知 — Dynatrace 的 AI 引擎 Davis 使用映射到统一实体模型的高保真指标、轨迹、日志和真实用户数据。它使用 Davis 的确定性 AI 来揭示问题的确切根源。Davis 不仅能找到确切的根本原因,而且可以立即提供有价值的上下文。您将知道问题是资源瓶颈还是部署变更的结果,甚至是背后的原因。您可以重现问题以充分了解问题发生的原因以及如何解决问题。
3. 自动创建 Jira 事务 — Dynatrace 和 Jira 集成会自动为在 Dynatrace 环境中自动检测到的所有新问题创建事务。
4. Jira Automation 更新了 Dynatrace — Jira Automation 是一项“无代码”功能,只需单击几下即可轻松构建规则。对 Dynatrace API 的网络请求使用 Dynatrace 问题 ID 来更新 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 使用确定性 AI 来执行自动故障树分析,此分析将指标、日志、真实用户数据和事件均纳入考虑。其分析结果是一张问题卡片,其中显示了业务影响、哪些应用和基础设施组件受到影响、事件的可重现历史记录以及事务的根本原因。

步骤 3:查看自动生成的 Jira 事务
Jira 将生成一个新事务,其中包括问题详细信息以及指回 Dynatrace 问题卡片的深度 URL 链接。

步骤 4:查看 Dynatrace 评论
创建 Jira 事务后,单击 Dynatrace 问题 URL 以打开 Dynatrace 问题卡片。向下滚动以查看评论,其中附带指回 Jira 事务的 URL。这是 Dynatrace API 调用(由 Jira Automation 规则创建)中添加的 Jira Automation 智能标签实现的。

** 专业提示 — 您可以使用与 Dynatrace 评论相同的概念来添加任意新的 Jira 评论。为此,请使用“当:事务已评论”触发器创建新的 Automation 规则,并将其用作 webhook 正文:
{
"comment": "{{issue.comments.last.body}} - Jira Issue: [{{issue.key}}]({{issue.url}})", "user": "{{issue.comments.last.author.displayName}}", "context": "Jira"
}

** 专业提示 — Dynatrace 问题通知可以配置为将其他信息从 Dynatrace 传递给 Jira,包括问题状态、受影响的实体和标记。此数据可以进一步用于更复杂的自动化,例如分配事务、设置优先级、链接到组件以及填充自定义 Jira 字段。例如,Jira Automation “if block”可以解析匹配 Dynatrace 标记。

步骤 5:通过重新启动示例应用服务来解决事务
在运行示例应用的 Linux 主机上,导航到包含 docker-compose.yaml 文件的目录,然后运行以下命令以重新启动服务:
sudo docker-compose -f docker-compose-services.yaml scale customer-service=1
此命令可用于验证它是否正在运行:
sudo docker ps
步骤 6:在 Dynatrace 中再次查看应用
查看前端服务页面,您会注意到故障是如何消失的。

而且 Dynatrace 问题卡片也自动关闭了。

尝试其他几个问题
Dynatrace Orders 应用预先构建了编程为不同版本的问题。该应用使用功能标记 URL 进行编程,该 URL 可用于更改版本,从而会更改应用的行为。订单和客户服务的版本 1 具有“正常”行为,并通过将版本设为 2 来启用问题。
如果您想试用这些功能,请参阅 Dynatrace Orders 概览页面。
在 Dynatrace 发布页面上配置 Jira 事务查询
在“发布”页面上,Dynatrace 显示事务跟踪器查询,包括与实时库存中受监控实体相关的事务统计信息。

步骤 1:定义您的 JQL
在 Jira 的事务搜索中,构造一个 Jira 查询语言 (JQL) 表达式,如下所示。
project = DT AND status in (Backlog, "In Progress") AND component = frontend ORDER BY created DESC

步骤 2:创建发布事务跟踪器查询
1. 在 Dynatrace 中,使用左侧菜单导航到发布页面。
2. 在发布页面上,单击配置按钮。

3. 在发布事务跟踪器查询设置页面上,单击添加新的事务跟踪器查询按钮。

4. 在新的查询表单上,按如下方式填写值:
事务标签:dt-orders 前端事务
Issue query: project = DT AND status in (Backlog, "In Progress") AND component = frontend ORDER BY created DESC
事务主题:错误
事务跟踪器系统:Jira
用户名:您的 Jira 用户 ID,例如一个电子邮件地址
密码:留空
令牌:您在本指南中先前创建的 Jira 用户令牌
5. 保存查询。
步骤 3:查看
1. 使用左侧菜单导航回发布页面。
2. 现在,您应能看到包含所有未解决事务的事务计数的新查询。

3. 如果单击事务行,系统将打开 Jira 来查看这些队列。
清除
1. 如果您正在为示例应用运行按需运行的主机,请将其终止。
2. 要停止示例应用,请转到运行示例应用的 Linux 主机,导航到包含 docker-compose.yaml 文件的目录,然后运行以下命令以停止应用:
sudo docker-compose -f docker-compose-services.yaml down
使用此命令验证没有容器在运行
sudo docker ps
3. 在 Jira 中,删除您为本教程创建的项目。
4. 在 Dynatrace 中,删除您添加的 API 令牌和问题通知规则。
了解更多
在 Atlassian Marketplace 中获取适用于 Jira 的 Dynatrace 问题集成插件。
在我们的 Dynatrace 社区提问(并提供建议)。
在此处了解有关 Dynatrace + Atlassian 功能的更多信息。
点击此处了解有关 Dynatrace 与 Atlassian 集成的更多信息(以及如何让工作更智能,而不是更困难)。
在此 Dynatrace Performance Clinic 中,查看 Atlassian、Dynatrace 和 KepTN 的实际应用。
请参阅我们的其他教程(如何集成 Dynatrace 和 Jira 以提高可观察性)以了解如何设置 Jira 和 Dynatrace 集成。