多个部署的普罗米修斯警报
Prometheus Alert for Multiple Deployments
我需要为 kubernetes 集群上给定应用程序 运行 的许多实例公开的 prometheus 指标实施警报。
必须按照以下格式在 .yaml 文件中创建警报:
- name: some-alert-name
interval: 30s
rules:
- alert: name-alert
expr: <Expression To Make>
labels:
event_id: XXXXX
annotations:
description: "Project {{ $labels.kubernetes_namespace }} / App {{ $labels.app }} / Pod {{ $labels.kubernetes_pod_name }} / Instance {{ $labels.instance }}."
summary: "{{ $labels.kubernetes_namespace }}"
应用于警报的条件类似于:givenMetricValue > 4
我可以毫无问题地获取所有实例的指标值,因为我可以这样做:metricName{app=~"common-part-of-deployments-name-.*"}"
我的问题是有一个独特的警报,如果其中一个满足条件,就会触发一个表达式。
这可以做到吗?
如果可以,我该怎么做?
事实证明,如果您想使用像
这样的通用“全取”表达式来创建警报
metricName{app=~"common-part-of-deployments-name-.*"}"
将为正则表达式匹配的每个部署触发警报。因此,您只需要一个带有通用表达式的警报。
我需要为 kubernetes 集群上给定应用程序 运行 的许多实例公开的 prometheus 指标实施警报。
必须按照以下格式在 .yaml 文件中创建警报:
- name: some-alert-name
interval: 30s
rules:
- alert: name-alert
expr: <Expression To Make>
labels:
event_id: XXXXX
annotations:
description: "Project {{ $labels.kubernetes_namespace }} / App {{ $labels.app }} / Pod {{ $labels.kubernetes_pod_name }} / Instance {{ $labels.instance }}."
summary: "{{ $labels.kubernetes_namespace }}"
应用于警报的条件类似于:givenMetricValue > 4
我可以毫无问题地获取所有实例的指标值,因为我可以这样做:metricName{app=~"common-part-of-deployments-name-.*"}"
我的问题是有一个独特的警报,如果其中一个满足条件,就会触发一个表达式。
这可以做到吗? 如果可以,我该怎么做?
事实证明,如果您想使用像
这样的通用“全取”表达式来创建警报metricName{app=~"common-part-of-deployments-name-.*"}"
将为正则表达式匹配的每个部署触发警报。因此,您只需要一个带有通用表达式的警报。