我有一种情况,需要将当前时间戳从 Prometheus 发送到 Pagerduty 。我需要从 Pagerduty 中的自定义详细信息访问当前时间戳,以根据当前时间编写事件规则。
目前,我可以在 Pagerduty [“ firing”,“ num_firing”,“ num_resolved”] 中的自定义详细信息中看到三个字段。所有与警报相关的详细信息都在“触发” 字段内,但为单个字符串。
我考虑过将时间戳添加到 Prometheus事件规则中的标签中,但是问题是我将无法从< strong>“射击” 字段,因为它不是结构化格式。
从 Prometheus 收到的 Pagerduty 中的事件详细信息:{
"client": "AlertManager",
"client_url": "http://********/",
"description": "[FIRING:1] **************",
"event_type": "trigger",
"incident_key": "********",
"service_key": "********",
"details": {
"firing": "Labels:\n - alertname = ******\n - datacenter = *****\n - instance = ******\n - instance_id = ******\n - instance_type = ******\n - job = ******\n - metrics = ******\n - node = ******\n - pod = ******\n - private_ip = ******\n - public_ip = ******\n - service = ******\n - severity = critical\nAnnotations:\n - description = ******\n - summary = ******\nSource: ******\n",
"num_firing": "1",
"num_resolved": "0",
"resolved": ""
}
}
我需要将当前时间戳添加到与“触发” 字段相同的级别。是否可以通过 Prometheus警报管理器配置或通过警报规则来执行此操作?
答案 0 :(得分:0)
向警报添加其他元数据的标准方法是通过注释。
- alert: Alert
for: 5m
expr: ...
annotations:
timestamp: >
time: {{ query "time()" }}
这应将时间戳记注释添加到触发的警报中。
答案 1 :(得分:0)
- alert: Alert
for: 5m
expr: ...
annotations:
timestamp: >
time: {{ with query "time()" }}{{ . | first | value | humanizeTimestamp }} {{ end }}
如上所述,我已经解决了相同的问题。 干杯。!
答案 2 :(得分:0)
您可以将其作为自定义详细信息直接添加到alertmanager.yaml中。
details:
time: {{ query "time()" }}
请注意,这从Alertmanager的角度来看会增加时间,因此可能会包含少量延迟。