问题
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>
这回时间对的上了
回头看看当时豆包是这么回答的(都不生效)