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

Prometheus はアラートを作成して Alertmanager に送信し、Alertmanager はラベルに基づいてさまざまな受信者に通知を送信します。受信者は、Slack、PagerDuty、電子メール、または汎用 Webhook インターフェイスを介したカスタム統合など、多数の統合のいずれかになります。

受信者に送信される通知は、テンプレートを通じて構築されます。Alertmanager にはデフォルトのテンプレートが用意されていますが、カスタマイズすることもできます。混乱を避けるため、Alertmanager のテンプレートは Prometheus のテンプレート とは異なることに注意してください。ただし、Prometheus のテンプレートには、アラート ルール ラベル/アノテーションのテンプレートも含まれます。

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

データ構造

Data

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 として格納されているデータ(ラベルとアノテーション)への直接アクセスに加えて、LabelSets のソート、削除、表示のためのメソッドもあります。

KV メソッド

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

関数

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

文字列

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

このページの内容