Skip to main content

🧬 聚合特性

聚合属性可让您根据目录中的relations 计算指标。

使用聚合属性可以查看相关实体的相关指标,而无需手动计算。

聚合可在以任何方式(直接、间接、上游或下游)与当前蓝图相关的任何蓝图上执行。

何时使用聚合属性?

聚合属性最好定义在目录中抽象层**较高的蓝图上。

这些蓝图通常与目录中的许多其他蓝图**相关,因此最能从聚合属性中受益。

💡 常用聚合 Usage

例如,如果您有一个微服务蓝图,您可以对其定义聚合属性,以便根据相关实体计算指标,如

  • 与微服务相关的开放式 jira 问题数量。
  • 与微服务相关的未解决的 "危 "和 "高 "漏洞数量。
  • 上周的平均部署频率。
  • 上个月的构建成功率。

聚合属性可让您根据相关实体的指标指定记分卡和倡议规则。

例如,如果您有一个微服务蓝图,并有相关的警报蓝图,您可以定义一条规则,检查与每个微服务相关的打开的 CRITICAL 和 HIGH 警报的数量是否大于 0。

规格

aggregationProperties "键是实体 JSON 中的顶级键(类似于 "identifier"、"title"、"properties "等)。

聚合属性支持按实体或按属性进行计算。

  • 实体计算是对符合查询条件的实体进行计算(例如,计算符合查询条件的实体数量)。
  • 属性计算是对符合查询条件的实体的属性进行计算(例如,对符合查询条件的实体的属性值求和)。

定义

按实体计算

被用于的实体计算用于根据与查询匹配的实体计算指标。

支持的方法

  • count - 计算与查询匹配的实体数量。例如,计算与微服务相关的打开 Jira 问题的数量。
  • average - 计算每个定义时间段内实体的平均值。例如,计算每周的平均部署频率。

在这个示例中,我们有一个微服务蓝图,我们想计算与每个微服务相关的 Jira 开放问题的数量。

{
"aggregationProperties": {
"numberOfOpenJiraIssues": {
"title": "Number of open Jira issues",
"target": "jiraIssue",
"calculationSpec": {
"calculationBy": "entities",
"func": "count"
},
"query": {
"combinator": "and",
"rules": [
{
"property": "status",
"operator": "=",
"value": "OPEN"
}
]
}
}
}
}

aggregationProperties "包含一个名为 "numberOfOpenJiraIssues "的键,它是我们要定义的聚合属性的标识符。

  • title - 聚合属性的 title(标题)。
  • target - 我们要聚合数据的蓝图。
  • query - 可选 - 将在目标蓝图上执行的查询。该查询基于筛选器,可根据 Port 的 "数据 "属性包含或排除特定数据。Search Rules
  • calculationSpec - 计算规范。
    • calculationBy": "entities"` - 计算将在与查询匹配的 ** 实体上进行。
    • "func": "count" - 是我们要在计算中引用的函数。

按属性计算

Calculate by property(按属性计算)被用来根据与查询匹配的实体的属性计算指标。

属性类型必须是数字。

支持的方法

  • sum - 将符合查询条件的实体的属性值相加。例如,与微服务相关的开放式 Jira 问题的故事点总和。
  • average - 计算与查询匹配的实体属性的平均值。例如,微服务的平均 CPU 使用率。
  • min - 计算与查询匹配的实体属性的最小值。例如,微服务上周的最低警报严重性。
  • max - 计算与查询匹配的实体属性的最大值。例如,上周微服务的最高警报严重性。
  • median - 计算与查询匹配的实体属性的中值。例如,微服务最近一周的 CPU 使用率中值。

在这个示例中,我们有一个微服务蓝图,我们想计算与每个微服务相关的开放式 Jira 问题的故事点总和。

{
"aggregationProperties": {
"sumOfStoryPoints": {
"title": "Sum of story points",
"target": "jiraIssue",
"calculationSpec": {
"calculationBy": "property",
"func": "sum",
"property": "storyPoints"
},
"query": {
"combinator": "and",
"rules": [
{
"property": "status",
"operator": "=",
"value": "OPEN"
}
]
}
}
}
}

聚合属性 "包含一个名为 "sumOfStoryPoints "的键,它是我们要定义的聚合属性的标识符。

  • title - 聚合属性的 title(标题)。
  • target - 我们要聚合数据的蓝图。
  • query - 可选 - 将在目标蓝图上执行的查询。该查询基于筛选器,可根据 Port 的 "数据 "属性包含或排除特定数据。Search Rules
  • calculationSpec - 计算规范。
    • calculationBy": "property"` - 将对符合查询条件的实体的属性进行计算(例如,对符合查询条件的实体的属性值求和)。
    • "func": "sum" 是我们要用于计算的函数。
    • "property": "storyPoints" - 我们要计算总和的属性。属性类型必须是数字。

限制

蓝图中所有实体的聚合属性结果将每 15 分钟重新计算一次。