prometheus - Prometheus:使用正则表达式减少重复规则
问题描述
在 Prometheus 记录规则中,我想记录我每个 Jenkins 作业中的作业失败率。
这个表达式将允许我这样做。MyJenkinsJob_1 的失败率。
( sum(jenkins_job_last_build_failed_tests{jobname="MyJenkinsJob_1"})
or (absent(jenkins_job_last_build_failed_tests{jobname="MyJenkinsJob_1"})*0) )
/
( sum(jenkins_job_last_build_total_tests{jobname="MyJenkinsJob_1"})
or (absent(jenkins_job_last_build_total_tests{jobname="MyJenkinJobs_1"})*0) )
由于逻辑(方程式)对所有工作都是通用的!,我可以通过更改变量值jobname来使用相同的表达式。
我们可以用一些 reg 表达式来做到这一点,这样我就不必反复硬编码(创建新规则)Jenkins 作业名称(例如:MyJenkinsJob_1、MyJenkinsJob_2、MyJenkinsJob_3、......)。Prometheus 中是否有任何可用的功能!
解决方案
对于这个特定的查询,这是不可能的,因为您需要提供jobname
应该以某种方式存在的所有值的列表。我建议查看对您的配置管理系统的模板支持,以便为您生成规则。
推荐阅读
- javascript - 关于 Ember 中的自定义构建
- node.js - 将 mongoose.Types.ObjectId() 与多台缩放机器一起使用(重复问题?)
- python-3.x - python3.3 上的烧瓶:“TypeError:AST 标识符必须是 str 类型”
- swiftui - 使用锚点定位视图
- python-3.x - 如何在不使用 Tkinter 删除任务栏中的图标的情况下摆脱标题栏?
- python - tkinter 中的下一个和后退按钮
- javascript - 如何获取事件处理程序的返回值?
- java - Websocket颤振连接
- rest - 在使用 REST 模板 Spring Boot 时在响应中处理法语字符
- python - pandas read_csv 读取大文件的问题