通知テンプレート リファレンス
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 | []string | KV | 指定されたキーを除いたキー/値マップのコピーを返します。 |
| Names | - | []string | LabelSet 内のラベル名の名前を返します。 |
| Values | - | []string | LabelSet 内の値のリストを返します。 |
関数
Go テンプレートによって提供されるデフォルト関数にも注意してください。
文字列
| 名前 | 引数 | 戻り値 | 注記 |
|---|---|---|---|
| title | 文字列 | strings.Title、各単語の最初の文字を大文字にします。 | |
| toUpper | 文字列 | strings.ToUpper、すべての文字を大文字に変換します。 | |
| toLower | 文字列 | strings.ToLower、すべての文字を小文字に変換します。 | |
| trimSpace | 文字列 | strings.TrimSpace、先頭と末尾の空白を削除します。 | |
| match | pattern, string | Regexp.MatchString。正規表現を使用して文字列を照合します。 | |
| reReplaceAll | pattern, replacement, text | Regexp.ReplaceAllString 正規表現置換、アンカーなし。 | |
| join | sep string, s []string | strings.Join、s の要素を連結して 1 つの文字列を作成します。区切り文字文字列 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 | number or string | エラーが発生した場合、期間を表す人間が読める形式の文字列とエラーを返します。 |