通知テンプレートリファレンス
Prometheusはアラートを作成してAlertmanagerに送信し、Alertmanagerはラベルに基づいてさまざまな受信者(Slack、PagerDuty、メール、または汎用Webhookインターフェースを介したカスタム統合など)に通知を送信します。
受信者に送信される通知はテンプレートを介して構築されます。Alertmanagerにはデフォルトのテンプレートが付属していますが、カスタマイズすることもできます。混乱を避けるために、AlertmanagerのテンプレートはPrometheusのテンプレートとは異なることに注意することが重要ですが、Prometheusのテンプレートにはアラートルールラベル/注釈のテンプレートも含まれます。
Alertmanagerの通知テンプレートは、Goテンプレートシステムに基づいています。一部のフィールドはテキストとして評価され、他のフィールドはHTMLとして評価されるため、エスケープに影響することに注意してください。
データ構造
データ
Data
は、通知テンプレートとWebhookプッシュに渡される構造です。
名前 | タイプ | 注意 |
---|---|---|
レシーバー | 文字列 | 通知が送信される受信者の名前を定義します(slack、emailなど)。 |
ステータス | 文字列 | 少なくとも1つのアラートが発報中の場合、発報中と定義され、それ以外の場合は解決済みと定義されます。 |
アラート | アラート | このグループのすべてのアラートオブジェクトのリスト(下記参照)。 |
グループラベル | KV | これらのアラートがグループ化されたラベル。 |
共通ラベル | KV | すべてのアラートに共通のラベル。 |
共通注釈 | KV | すべてのアラートに共通の注釈のセット。アラートに関するより長い追加情報文字列に使用されます。 |
外部URL | 文字列 | 通知を送信したAlertmanagerへのバックリンク。 |
Alerts
タイプは、アラートをフィルタリングするための関数を公開します
Alerts.Firing
は、このグループで現在発報中のアラートオブジェクトのリストを返します。Alerts.Resolved
は、このグループで解決済みのアラートオブジェクトのリストを返します。
アラート
Alert
は、通知テンプレート用の1つのアラートを保持します。
名前 | タイプ | 注意 |
---|---|---|
ステータス | 文字列 | アラートが解決済みか、現在発報中かを定義します。 |
ラベル | KV | アラートに添付されるラベルのセット。 |
注釈 | KV | アラートの注釈のセット。 |
開始日時 | time.Time | アラートが発報し始めた時刻。省略された場合、現在の時刻はAlertmanagerによって割り当てられます。 |
終了日時 | time.Time | アラートの終了時刻が既知の場合にのみ設定されます。それ以外の場合は、最後にアラートが受信されてからの設定可能なタイムアウト期間に設定されます。 |
GeneratorURL | 文字列 | このアラートの原因となるエンティティを識別するバックリンク。 |
フィンガープリント | 文字列 | アラートを識別するために使用できるフィンガープリント。 |
KV
KV
は、ラベルと注釈を表すために使用されるキー/値の文字列ペアのセットです。
type KV map[string]string
2つの注釈を含む注釈の例
{
summary: "alert summary",
description: "alert description",
}
KVとして保存されているデータ(ラベルと注釈)への直接アクセスに加えて、LabelSetのソート、削除、表示のためのメソッドも存在します。
KVメソッド
名前 | 引数 | 戻り値 | 注意 |
---|---|---|---|
ソートされたペア | - | ペア(キー/値の文字列ペアのリスト) | キー/値のペアのソートされたリストを返します。 |
削除 | []string | KV | 指定されたキーを除いたキー/値マップのコピーを返します。 |
名前 | - | []string | LabelSet内のラベル名の名前を返します。 |
値 | - | []string | LabelSet内の値のリストを返します。 |
関数
Goテンプレートで提供されるデフォルトの関数にも注意してください。
文字列
名前 | 引数 | 戻り値 | 注意 |
---|---|---|---|
タイトル | 文字列 | strings.Title、各単語の最初の文字を大文字にします。 | |
toUpper | 文字列 | strings.ToUpper、すべての文字を大文字に変換します。 | |
toLower | 文字列 | strings.ToLower、すべての文字を小文字に変換します。 | |
trimSpace | 文字列 | strings.TrimSpace、先頭と末尾の空白文字を削除します。 | |
match | パターン、文字列 | Regexp.MatchString。正規表現を使用して文字列を照合します。 | |
reReplaceAll | パターン、置換、テキスト | Regexp.ReplaceAllString 正規表現置換、アンカーなし。 | |
join | sep string, s []string | strings.Join、sの要素を連結して単一の文字列を作成します。セパレータ文字列sepは、結果の文字列の要素間に配置されます。(注:テンプレートでのパイプライン処理を容易にするため、引数の順序が反転しています。) | |
safeHtml | text string | html/template.HTML、自動エスケープを必要としないHTMLとして文字列をマークします。 | |
stringSlice | ...string | 渡された文字列を文字列スライスとして返します。 | |
date | string, time.Time | 指定された形式で時間のテキスト表現を返します。形式のドキュメントについては、pkg.go.dev/timeを参照してください。 | |
tz | string, time.Time | タイムゾーンでの時刻を返します。例:Europe/Paris。 | |
since | time.Time | time.Duration、指定された時刻から現在のシステム時刻までの経過時間を返します。 | |
humanizeDuration | 数値または文字列 | 期間を表す人間が読める形式の文字列と、エラーが発生した場合はそのエラーを返します。 |