Jira 查询编辑器
Grafana 为 Jira 提供了一个查询编辑器。有关在 Grafana 中查询数据源的通用文档,包括所有查询编辑器共有的选项和函数,请参阅查询和转换数据。
Jira 查询编辑器选项
以下是 Jira 特有的查询编辑器选项列表
选择字段 - 选择 Jira 问题字段,例如
Epic Name
、Summary
、Sprint Name
和Story point estimate
。点击向下箭头或字段中的任意位置以查看可用选项列表。限制 - 限制查询返回的问题数量。默认值为
50
。过滤(JQL) - 添加有效的 JQL 查询。有关 JQL 的更多信息,请参阅使用 Jira Query Language (JQL) 进行高级搜索。按下 Command/Ctrl + Enter 键可以运行查询。
查询示例
project='TEST' and assignee ='Joe Smith'
该查询查找 Joe Smith 在 TEST 项目中的所有问题。
过滤、查看和排序问题
Jira 数据源查询 Jira 中的问题,这些问题可以表示 Jira 中的错误、用户故事、支持工单或其他任务。选择一个字段来查看并使用 JQL 过滤和/或排序您的问题。
您可以输入任何有效的 JQL 表达式,根据 Jira 查询语言 JQL 中的任何字段(例如 Project Name
、Issue Type
、Assignee Name
或 Sprint Name
)来过滤和/或排序您的问题。有关使用 JQL 的更多信息,请参阅使用 JQL 像专家一样搜索 Jira 和 使用 Jira Query Language (JQL) 进行高级搜索。
您可以在表格中显示数据,或使用 Grafana 转换来处理问题数据、运行计算或将数据转换为时间序列图。有关更多信息,请参阅应用转换
增强 JQL 的转换
虽然 Grafana 提供了许多可供选择的转换,但以下转换提供了强大的增强功能,使 JQL 具备了一些 SQL 的能力和特性。有关转换和转换类型的更多信息,请参阅转换数据和转换函数。
使用 Jira 数据源时,以下转换非常有用
从计算中添加字段 - 类似于 SQL 表达式,此转换允许基于其他字段的计算向您的数据集添加新字段。计算中使用的字段可以来自单个查询或您连接在一起的查询。您还可以将计算链接在一起并从计算字段执行计算。有关更多信息,请参阅从计算中添加字段。
提取字段 - 由于某些字段以“字符串化 JSON”格式返回(作为字符串返回的 JSON),此转换允许您通过提供所需数据的 JSON 路径来解析这些 JSON 字段并创建新字段。有关更多信息,请参阅提取字段。
注意
从 Grafana 9.4 版本开始支持将 JSON 作为字符串返回(“字符串化 JSON”)。您还可以在Jira JSON 字段演示仪表盘中找到处理 JSON 数据的示例,您可以从数据源页面导入该仪表盘。请参阅导入 Jira 仪表盘。
分组 - 此转换提供了一个不属于标准 Jira JQL 语法中的关键功能:分组数据。使用此转换可以按 Sprint 或其他问题字段进行分组,并按组进行聚合以获取指标,例如速度以及 Sprint 中估算的故事点与实际完成的故事点。有关更多信息,请参阅分组。
外连接 - 类似于 SQL 连接,此转换允许您通过公共字段将 2 个或多个查询连接在一起。这提供了一种方法来合并来自查询的数据集,并使用其他转换来计算来自多个查询或数据集的值。有关更多信息,请参阅外连接。
时间序列查询
要显示时间序列数据,选择一个日期字段以及一个数字字段,然后切换到图形可视化。
示例:Sprint 开始日期,故事点估算
数字字段可以通过使用分组转换来计算,该转换允许按Sprint 开始日期进行分组,并汇总故事点估算,从而创建每个 Sprint 随时间变化的故事点可视化。
关联问题
linked issues
字段返回 JSON 字符串,即“字符串化 JSON”。您需要应用提取字段转换来获取所需数据。由于 Jira 以 2 个不同的路径(例如,“blocks” 或 “is blocked by”)返回关联问题,因此您需要复制查询以分别处理每个路径,然后将两个结果合并到一个表格中。
注意
您可以在Jira JSON 字段演示仪表盘中找到以下示例,您可以从数据源页面导入该仪表盘。请参阅导入 Jira 仪表盘。
- 添加查询
- 选择字段:Key,Linked Issues
- 添加 JQL 过滤条件:
project = '您的项目'
- 再次添加与上面相同的查询
- 添加转换提取字段
- 来源 = 关联问题
- 格式 = JSON
- 添加路径
- 字段 =
inwardIssue.key
- 别名 = 关联问题 Key
- 字段 =
- 添加转换过滤器,以便转换仅应用于查询 A
- 添加另一个转换提取字段
- 重复步骤 3 中的所有操作,但使用路径
outwardIssue.key
并将转换应用于查询 B。
- 重复步骤 3 中的所有操作,但使用路径
- 添加转换按值过滤数据
- 过滤类型 = 包含
- 条件 = 匹配任意
- 添加条件
- 字段 = 关联问题
- 匹配 = 等于
- 值 = 留空字段
- 添加另一个条件
- 字段 = 关联问题
- 匹配 = 正则表达式
- 值 =
inwardIssue
- 添加转换过滤器,以便转换仅应用于查询 A
- 添加另一个转换按值过滤数据
- 重复步骤 5 中的所有操作,但在条件中使用
outwardIssue
并将转换应用于查询 B。
- 重复步骤 5 中的所有操作,但在条件中使用
- 添加合并转换
- 添加组织字段转换
- 隐藏带有 JSON 数据的字段
Linked issues
- 由于合并转换可能对字段名称产生影响,如有必要,您可以重命名其他字段。
- 隐藏带有 JSON 数据的字段
使用 Grafana 转换回答常见问题
您可以使用转换来可视化、聚合、分组和连接数据集,还可以使用许多其他类型的转换将简单的结果转换为复杂问题的答案。
注意
在下面的所有示例中,如果设置的限制小于 Sprint 或项目中实际问题数量,结果可能会失真。例如,如果您想了解项目中完成问题所需的总时间,并且通过将限制设置为 5 只选择了 5 个问题,而项目中有 100 个问题,那么您将只能获得所选的 5 个问题的统计数据。
示例 1:如何按 Sprint 显示速度?
- 选择字段:Sprint 名称,故事点估算
- 添加 JQL 过滤条件
project = "您的项目" AND type != epic AND status = done order by created ASC
- 添加分组转换
- Sprint 名称 | 按此分组
- 故事点估算 | 计算 | 总计
- 选择条形仪表盘可视化
示例 2:如何显示 Sprint 中已完成的故事点与估算的故事点?
- 添加查询
- 选择字段:Sprint 名称,Sprint 开始日期,故事点估算
- 添加 JQL 过滤条件:
project = '您的项目' AND type != epic
- 添加第二个查询
- 选择字段:Sprint 名称,Sprint 开始日期,故事点估算
- 添加 JQL 过滤条件:
project = '您的项目' AND type != epic AND status = done
- 添加分组转换
- Sprint 名称 | 按此分组
- Sprint 开始日期 | 按此分组
- 故事点估算 | 计算 | 总计
- 选择图形可视化
示例 3:完成我的项目中问题所需的平均时间是多少?
- 添加查询
- 选择字段:创建时间,状态类别变更时间
- 添加 JQL 过滤条件:
project = '您的项目' AND type != epic AND status = done
- 添加转换:从计算中添加字段
- 模式 = 缩减行
- 计算 = 差值
- 添加转换:从计算中添加字段
- 模式 = 二进制运算
- 运算 = 差值 / 86000000 (1000 * 3600 * 24 以获取天数)
- 别名 = 天数
- 添加转换:组织字段
- 隐藏 Difference 字段
- 添加转换:按值过滤数据
- 过滤类型 = 包含
- 条件 = 匹配任意
- 字段 = 天数 | 匹配 = 大于 | 值 = 1
- 添加转换:缩减
- 模式 = 系列转行
- 计算 = 平均值
- 选择统计图可视化