【问题标题】:Prometheus email alert to show metric valuePrometheus 电子邮件警报以显示指标值
【发布时间】:2017-09-14 08:52:00
【问题描述】:

我在 Prometheus/Alert Manager 中有一个标签 cs_job_time,我想在满足另一项工作的条件时发送电子邮件警报。电子邮件发送正常,但是否可以在电子邮件中包含 cs_job_time 的值?我可以将{{$value}} 用于相关指标,但我也想打印cs_job_time 的值。

我遇到了this,但是当我尝试时

time = "{{  `cs_job_time{instance='%s', job='/'}` $labels.instance | query | first }}

或类似的变体,我收到错误消息"Error expanding alert template CSJobAlert with data '{map[] 2123}': runtime error: invalid memory address or nil pointer dereference" source="alerting.go:199"

是否可以通过电子邮件发送指标值?

【问题讨论】:

    标签: email go alert metrics prometheus


    【解决方案1】:

    您在示例中缺少printf

    "{{ printf `cs_job_time{instance='%s', job='/'}` $labels.instance | query | first }}"
    

    但要小心,如果没有结果,那么first 将失败。通常最好使用范围语句,因为它可以适应这种情况。

    【讨论】:

    • 感谢您的回复。这已经解决了这个问题,但我现在得到了 `: error call first: first() called on vector with no elements". If I access cs_job_time` 来自 Prometheus,有一个值。我还尝试将 first 更改为range 但在我原来的帖子中收到了错误消息,但我确定我做错了(对不起,我是 Go 模板的新手)
    • 我猜你的工作标签不正确。有关示例,请参见 prometheus.io/docs/visualization/template_examples/…
    • 谢谢,它正在工作。我对作业名进行了硬编码,它起作用了。如果有人只想要这个值,也可以添加 value 参数。例如。 {{ `cs_job_time{instance='localhost:9091',job='jobname'}` | query | first | value}}
    猜你喜欢
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2019-07-20
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多