通知テンプレートリファレンス

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メソッド

名前引数戻り値注意
ソートされたペア-ペア(キー/値の文字列ペアのリスト)キー/値のペアのソートされたリストを返します。
削除[]stringKV指定されたキーを除いたキー/値マップのコピーを返します。
名前-[]stringLabelSet内のラベル名の名前を返します。
-[]stringLabelSet内の値のリストを返します。

関数

Goテンプレートで提供されるデフォルトの関数にも注意してください。

文字列

名前引数戻り値注意
タイトル文字列strings.Title、各単語の最初の文字を大文字にします。
toUpper文字列strings.ToUpper、すべての文字を大文字に変換します。
toLower文字列strings.ToLower、すべての文字を小文字に変換します。
trimSpace文字列strings.TrimSpace、先頭と末尾の空白文字を削除します。
matchパターン、文字列Regexp.MatchString。正規表現を使用して文字列を照合します。
reReplaceAllパターン、置換、テキストRegexp.ReplaceAllString 正規表現置換、アンカーなし。
joinsep string, s []stringstrings.Join、sの要素を連結して単一の文字列を作成します。セパレータ文字列sepは、結果の文字列の要素間に配置されます。(注:テンプレートでのパイプライン処理を容易にするため、引数の順序が反転しています。)
safeHtmltext stringhtml/template.HTML、自動エスケープを必要としないHTMLとして文字列をマークします。
stringSlice...string渡された文字列を文字列スライスとして返します。
datestring, time.Time指定された形式で時間のテキスト表現を返します。形式のドキュメントについては、pkg.go.dev/timeを参照してください。
tzstring, time.Timeタイムゾーンでの時刻を返します。例:Europe/Paris。
sincetime.Timetime.Duration、指定された時刻から現在のシステム時刻までの経過時間を返します。
humanizeDuration数値または文字列期間を表す人間が読める形式の文字列と、エラーが発生した場合はそのエラーを返します。

このページの内容