概要
メールなどを送信する際に事前にテンプレートの内容がちゃんと展開できるか確認することができます
環境
- Ubuntu 22.04
- amtool 0.26.0
インストール
go install github.com/prometheus/alertmanager/cmd/amtool@latest
data.json
{
"Status": "firing",
"Alerts": [
{
"Status": "firing",
"Labels": {
"alertname": "alert1",
"instance_id": "hoge"
},
"Annotations": {
"runbook": "https://1.example.com/",
"description": "desc1"
}
},
{
"Status": "firing",
"Labels": {
"alertname": "alert2",
"instance_id": "hoge"
},
"Annotations": {
"runbook": "https://2.example.com/",
"description": "desc2"
}
}
],
"GroupLabels": {
"cluster": "cluster-A"
}
}
試す
template.text に好きなテンプレート文字列を渡してテストできます
テスト用のデータは template.data で渡します
-
~/go/bin/amtool template render --template.glob=/dev/null --template.text='{{ $alerts := "" }}{{ $instance_id := (index .Alerts 1).Labels.instance_id }}{{ range .Alerts }}{{ $alerts = (printf "%v %v" $alerts .Labels.alertname) }}{{ end }}{{ $instance_id }} ->{{ $alerts }}' --template.data=data.json
結果は以下のようになります
hoge -> alert1 alert2
最後に
サンプルは golang のテンプレートの記述に慣れていればもっと簡潔に書けるかなと思います
書いているときに一行だと大変なので複数行で記載してから一行にするといいかなと思います
0 件のコメント:
コメントを投稿