如何在Prometheus Alertmanager中迭代警报?

时间:2019-02-04 05:10:31

标签: prometheus prometheus-alertmanager

我正在尝试将时间戳(StartsAt的值)获取到任何警报的电子邮件正文中。 需要迭代警报,以从元素获取时间戳。  需要帮助,如何正确执行操作,以便在yaml文件的描述中收集所生成警报的确切时间戳?

2 个答案:

答案 0 :(得分:0)

这是Prometheus文档中的一个示例(用于遍历所有警报):https://prometheus.io/docs/alerting/notification_examples/#ranging-over-all-received-alerts

复制并粘贴,然后将.Annotations.summary替换为.startsAt。即

"{{ range .Alerts }}{{ .StartsAt }}\n{{ end }}"

作为参考,Alertmanager通知模板可用的数据结构记录在这里:https://prometheus.io/docs/alerting/notifications/

答案 1 :(得分:0)

- alert: Alert
  for: 5m
  expr: ...
  annotations:
    timestamp: >
      time: {{ with query "time()" }}{{ . | first | value | humanizeTimestamp }}{{ end }}

我没有迭代警报,而是通过上述方式解决了这个问题。 它有效,并且我可以在电子邮件正文中获得时间戳。干杯!!