PromQL 查询中的动态阈值
Dynamic Thresholds in a PromQL query
我有以下定义
- record: node_load5:node_cpu_seconds_total:critical
expr: 3
- record: node_load5:node_cpu_seconds_total:critical
expr: 5
labels:
app: loki
- record: Node_High_LoadAverage:Query
expr: ((node_load5 / count without (cpu, mode) (node_cpu_seconds_total{mode="system"})))
并希望在 Prometheus 警报中使用查询,该查询根据标签指定的值或默认值评估阈值。
我可以将 node_load5:node_cpu_seconds_total:critical
计算为两个不同的值并使用 Node_High_LoadAverage:Query
来缩写查询。
我正在尝试使用 group_left
和 on
执行联接。我的查询无效。
Node_High_LoadAverage:Query > on (app) group_left node_load5:node_cpu_seconds_total:critical
有没有人做过类似的事情并愿意分享他们的工作示例?
谢谢!
我想通了。
something > on (team) group_left something_too_high_threshold
这使用基于“团队”标签的“连接”运算符来应用不同的指标和阈值。在此示例中,“团队”标签必须存在于“某事”指标以及不同的“something_too_high_threshold”表达式中。
这是规则模型。
- record: something
expr: 600
- record: something
expr: 400
labels:
team: elsewhere
- record: something
expr: 300
labels:
team: foo
- record: something
expr: 500
labels:
team: bar
- record: something_too_high_threshold
expr: 200
labels:
team: foo
- record: something_too_high_threshold
expr: 400
labels:
team: bar
这可以通过处理标签不存在的指标来改进。
something > on (team) group_left() ( something_too_high_threshold or on (team) something * 0 + 100 )
这使用与上面相同的模型规则并提供默认值“某物”指标,这些指标要么不包含标签,要么未在 something_too_high_threshold
中定义
这个网页 https://www.robustperception.io/using-time-series-as-alert-thresholds 帮助我解决了这个问题。
我有以下定义
- record: node_load5:node_cpu_seconds_total:critical
expr: 3
- record: node_load5:node_cpu_seconds_total:critical
expr: 5
labels:
app: loki
- record: Node_High_LoadAverage:Query
expr: ((node_load5 / count without (cpu, mode) (node_cpu_seconds_total{mode="system"})))
并希望在 Prometheus 警报中使用查询,该查询根据标签指定的值或默认值评估阈值。
我可以将 node_load5:node_cpu_seconds_total:critical
计算为两个不同的值并使用 Node_High_LoadAverage:Query
来缩写查询。
我正在尝试使用 group_left
和 on
执行联接。我的查询无效。
Node_High_LoadAverage:Query > on (app) group_left node_load5:node_cpu_seconds_total:critical
有没有人做过类似的事情并愿意分享他们的工作示例?
谢谢!
我想通了。
something > on (team) group_left something_too_high_threshold
这使用基于“团队”标签的“连接”运算符来应用不同的指标和阈值。在此示例中,“团队”标签必须存在于“某事”指标以及不同的“something_too_high_threshold”表达式中。
这是规则模型。
- record: something
expr: 600
- record: something
expr: 400
labels:
team: elsewhere
- record: something
expr: 300
labels:
team: foo
- record: something
expr: 500
labels:
team: bar
- record: something_too_high_threshold
expr: 200
labels:
team: foo
- record: something_too_high_threshold
expr: 400
labels:
team: bar
这可以通过处理标签不存在的指标来改进。
something > on (team) group_left() ( something_too_high_threshold or on (team) something * 0 + 100 )
这使用与上面相同的模型规则并提供默认值“某物”指标,这些指标要么不包含标签,要么未在 something_too_high_threshold
中定义这个网页 https://www.robustperception.io/using-time-series-as-alert-thresholds 帮助我解决了这个问题。