前言
默认的时区告警是UTC的, 所以我们需要做一些调整
修改时区

我们可以通过官方文档了解到, StartsAt 的 数据类型是 time.Time
Time 初始化以后, 时区已经是写死了. 只能通过其他方法去更改时区,但是我们在template下不能用time模块,我们只能另辟蹊径。
我们可以通过Time对象的Add方法来进行时区的增加操作
Add 方式需要一个参数, 类型是Duration,返回的数据类型还是Time
Duration类型
这个类型表示持续的时间,以int64纳秒计数,最大持续可以到290年1
type Duration int64
实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package main
import (
"fmt"
"time"
)
func main() {
start := time.Date(2009, 1, 1, 12, 0, 0, 0, time.UTC)
afterTime := start.Add(time.Hour * 8)
afterEightHours := start.Add(28800e9)
fmt.Printf("start = %v\n", start)
fmt.Printf("start.Add(time.Hour * 8) = %v\n", afterTime)
fmt.Printf("start.Add(28800e9) = %v\n", afterEightHours)
}
# out
start = 2009-01-01 12:00:00 +0000 UTC
start.Add(time.Hour * 8) = 2009-01-01 20:00:00 +0000 UTC
start.Add(28800e9) = 2009-01-01 20:00:00 +0000 UTC
28800e9 是科学计数法的纳秒数
虽然本身时区并没有变,但是我们还是另辟蹊径通过 +8 小时来达到我们的目的。
alertmanager中应用
1 | {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} |
注意.StartsAt 只能在 .Alerts 循环下使用