我正在创建Grafana Jmeter 板,显示从Jenkins收集的数据,这些数据来自Thanos/Prometheus。每个Jenkins作业都由github的分支和标签标记。这意味着有很多构建是相似的。例如:testbuild1/branch1
、testbuild1/branch2
、testbuild1/1.2.3
等。这些由标签名称jenkins_job
定义
我想用一个prometheus查询来聚合每个唯一构建中的指标,并重新标记它们。
例如,我希望将testbuild1
的所有分支和标记合并到一个度量中,这样我就可以计算每个构建的所有失败次数。我认为我可以通过将“/”作为分隔符来实现这一点,但我无法正确执行查询。
因此,如果x1M5 N1 x具有1个故障,则x1M6 N1 x具有3个故障,并且x1M7 N1 x具有4个故障,则新的度量将读取具有8个故障的x1M8 N1 x。
我试过类似label_join(default_jenkins_builds_duration_milliseconds_summary_count{ status="FAILURE"}, "jenkins_job", "/", "jenkins_job")
的东西
我想我可能误解了查询语言。我该如何让它工作呢?
1条答案
按热度按时间emeijp431#
您需要使用label_replace函数。例如,下面的查询提取
jenkins_job
标签部分,直到第一个/
字符,并存储它,而不是原始的jenkins_job
标签值:如果您想统计给定时间段内(比如说过去一小时(1h))多个jenkins作业的汇总失败次数,则必须使用以下promql查询:
此函数使用sum()聚合函数。
请注意,
label_replace()
函数是在increase()之后应用的,因为如果不这样做,查询将无法按预期工作-有关详细信息,请参阅这些文档。