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

Prometheusはアラートを作成し、Alertmanagerに送信します。Alertmanagerは、ラベルに基づいて異なるレシーバーに通知を送信します。レシーバーは、Slack、PagerDuty、電子メール、または汎用webhookインターフェースを介したカスタム統合など、多くの統合の1つです。

レシーバーに送信される通知は、テンプレートを使用して作成されます。 Alertmanagerにはデフォルトのテンプレートが付属していますが、カスタマイズすることもできます。混乱を避けるために、AlertmanagerテンプレートはPrometheusのテンプレートとは異なりますが、Prometheusテンプレートにはアラートルールのラベル/アノテーションのテンプレートも含まれています。

Alertmanagerの通知テンプレートは、Goテンプレートシステムに基づいています。一部のフィールドはテキストとして評価され、他のフィールドはHTMLとして評価されるため、エスケープに影響することに注意してください。

データ構造

データ

Dataは、通知テンプレートとwebhookプッシュに渡される構造体です。

名前 タイプ 備考
レシーバー 文字列 通知の送信先となるレシーバーの名前(slack、emailなど)を定義します。
ステータス 文字列 少なくとも1つのアラートが発火している場合はfiring、それ以外の場合はresolvedと定義されます。
アラート アラート このグループ内のすべてのアラートオブジェクトのリスト(下記参照)。
GroupLabels KV これらのアラートがグループ化されたラベル。
CommonLabels KV すべてのアラートに共通のラベル。
CommonAnnotations KV すべてのアラートに共通のアノテーションのセット。アラートに関する追加情報の長文に使用されます。
ExternalURL 文字列 通知を送信したAlertmanagerへのバックリンク。

Alertsタイプは、アラートをフィルタリングするための関数を公開します

  • Alerts.Firingは、このグループ内で現在発火しているアラートオブジェクトのリストを返します
  • Alerts.Resolvedは、このグループ内で解決されたアラートオブジェクトのリストを返します

アラート

Alertは、通知テンプレート用に1つのアラートを保持します。

名前 タイプ 備考
ステータス 文字列 アラートが解決されたか、現在発火しているかを定義します。
ラベル KV アラートに添付されるラベルのセット。
アノテーション KV アラートのアノテーションのセット。
StartsAt time.Time アラートが発火を開始した時刻。省略した場合、Alertmanagerによって現在の時刻が割り当てられます。
EndsAt time.Time アラートの終了時刻がわかっている場合にのみ設定されます。それ以外の場合は、最後のアラートが受信されてからの設定可能なタイムアウト期間に設定されます。
GeneratorURL 文字列 このアラートの原因となるエンティティを識別するバックリンク。
フィンガープリント 文字列 アラートを識別するために使用できるフィンガープリント。

KV

KVは、ラベルとアノテーションを表すために使用されるキーと値の文字列ペアのセットです。

type KV map[string]string

2つのアノテーションを含むアノテーションの例

{
  summary: "alert summary",
  description: "alert description",
}

KVとして保存されているデータ(ラベルとアノテーション)に直接アクセスすることに加えて、LabelSetsのソート、削除、表示を行うためのメソッドもあります

KVメソッド

名前 引数 戻り値 備考
SortedPairs - ペア(キーと値の文字列ペアのリスト) キーと値のペアのソート済みリストを返します。
削除 []string KV 指定されたキーがないキーと値のマップのコピーを返します。
名前 - []string LabelSet内のラベル名の名前を返します。
- []string LabelSet内の値のリストを返します。

関数

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

文字列

名前 引数 戻り値 備考
タイトル 文字列 strings.Title、各単語の最初の文字を大文字にします。
すべて大文字 文字列 strings.ToUpper、すべての文字を大文字に変換します。
すべて小文字 文字列 strings.ToLower、すべての文字を小文字に変換します。
空白をトリム 文字列 strings.TrimSpace、先頭と末尾の空白を削除します。
一致 パターン、文字列 Regexp.MatchString。Regexpを使用して文字列を照合します。
すべて置換 パターン、置換、テキスト Regexp.ReplaceAllString Regexp置換、アンカーなし。
結合 sep文字列、s []文字列 strings.Join、sの要素を連結して単一の文字列を作成します。区切り文字列sepは、結果の文字列の要素間に配置されます。(注:テンプレートでのパイプラインを容易にするために、引数の順序が反転されています。)
安全なHTML テキスト文字列 html/template.HTML、文字列を自動エスケープ不要なHTMLとしてマークします。
文字列スライス ...文字列 渡された文字列を文字列のスライスとして返します。

このドキュメントはオープンソースです。問題の報告やプルリクエストを送信して、改善にご協力ください。