如何在Prometheus中按分隔符聚合Jenkins作业标签指标?
解决Jenkins作业指标按构建前缀聚合的Prometheus查询方法
你需要的不是label_join(它用于拼接多个标签),而是用label_replace先从jenkins_job标签中提取出构建前缀,再基于新标签做聚合求和。
具体实现步骤
假设你的失败次数指标是jenkins_job_failure_count,可以用以下查询:
sum by (build_name) ( label_replace(jenkins_job_failure_count, "build_name", "$1", "jenkins_job", "(.*)/.*") )
拆解说明
label_replace部分:- 正则表达式
(.*)/.*会匹配jenkins_job标签里斜杠前的所有内容(比如testbuild1/branch1中的testbuild1) - 将捕获到的内容赋值给新标签
build_name
- 正则表达式
sum by (build_name):按新生成的build_name标签聚合,自动把同一构建前缀下所有分支、标签的失败次数求和
如果需要保留其他业务标签(比如作业类型),可以在sum by中添加对应标签,示例:
sum by (build_name, job_type) ( label_replace(jenkins_job_failure_count, "build_name", "$1", "jenkins_job", "(.*)/.*") )
内容的提问来源于stack exchange,提问作者TeeTee
相关产品推荐
相关产品推荐

