Prometheus 电子邮件警报以显示指标值

Posted

技术标签:

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

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

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

time = "  `cs_job_timeinstance='%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"

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

【问题讨论】:

【参考方案1】:

您在示例中缺少printf

" printf `cs_job_timeinstance='%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_timeinstance='localhost:9091',job='jobname'` | query | first | value

以上是关于Prometheus 电子邮件警报以显示指标值的主要内容,如果未能解决你的问题,请参考以下文章

Swift如何显示警报以请求照片库的权限?

如何显示自定义警报以在 ios 中启用通知

Swift - 使用计时器检测用户不活动,然后在 4 分钟后显示警报以提示用户是不是仍然存在

React Native 表单验证

为SSH登录设置电子邮件提醒

设置多个警报以调用服务