Alertmanager通知时间的时区设置

0 阅读1分钟

问题

Alertmanager 告警时间,是 UTC 时间,中时区的时间,与北京时间(东八区)相差 8 小时。

如下

在这里插入图片描述

模板中使用的函数是下面这样的

<div class="item"><span class="label">时间:</span>{{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}</div>

设置

想要设置时间的时区,豆包建议的下面几种方式,都没用,非常麻烦

  • (1)设置 Alertmanager、Prometheus 应用的时区;

  • (2)模板中设置时间的时区;

  • (3)模板中手动加上 8 个小时的时间;

  • (4)在 Prometheus 告警的规则模板中增加一个北京时间字段,Alertmanager 模板中直接用;

最后还是通义返回了一个可以用的,上面的时间函数改成下面这样

手动加上 8 个小时的时间,28800e9 是 Go 语言的科学计数法,后面跟 9 个 0,这里的单位是纳秒

<div class="item"><span class="label">时间:</span>{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</div>

这回时间对的上了

在这里插入图片描述

回头看看当时豆包是这么回答的(都不生效)

在这里插入图片描述

在这里插入图片描述