翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
メッセージングテンプレートの使用
このドキュメントトピックは、Grafana バージョン 8.x をサポートする Grafana ワークスペース向けに設計されています。
Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 10 での作業。
Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「」を参照してくださいGrafana バージョン 9 での作業。
経由で送信される通知コンタクトポイントの使用は、メッセージングテンプレート を使用して構築されます。Grafana のデフォルトテンプレートは Go テンプレートシステム
ほとんどのコンタクトポイントフィールドはテンプレート化できるため、再利用可能なカスタムテンプレートを作成し、複数のコンタクトポイントで使用できます。このテンプレートデータトピックでは、テンプレートに使用できる変数を一覧表示します。
テンプレートの使用
テンプレートはメッセージの作成に使用されます。例えば、Slack アラートメッセージを使用すると、コンタクトポイントでタイトルと本文を設定できます。次の例は、デフォルトテンプレートを使用して、発せられて解決されたアラートの数を含むタイトルと、アラートとそのステータスを一覧表示する本文を作成する方法を示しています。
-
タイトル:
{{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
-
テキスト本文:
{{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }} {{end }}
次の例のように、独自のカスタムテンプレートを作成できます。
-
タイトル:
{{ template "slack.default.title" .}}
-
テキスト本文:
{{ template "mymessage" .}}
以下はサンプルテンプレートです。
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
次の手順は、カスタムメッセージテンプレートを作成、編集、削除する方法を示しています。
メッセージテンプレートを作成するには
-
Grafana コンソールの Grafana メニューで、アラート (ベル) アイコンを選択してアラートページを開きます。
-
コンタクトポイント を選択します。
-
Alertmanager ドロップダウンから、メッセージテンプレートを作成する Alertmanager インスタンスを選択します。デフォルトは Grafana Alertmanager です。
-
テンプレートの追加 を選択します。
-
わかりやすい名前 を追加します。
-
テンプレートのコンテンツを追加します。例:
{{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}
コンテンツセクションの
define
タグは、テンプレート名を割り当てます。このタグはオプションであり、省略すると、テンプレート名は名前フィールドから取得されます。両方を指定する場合は、同じままにしておくことがベストプラクティスです。 -
[テンプレートを保存] を選択します。
注記
アラートメッセージテンプレートの HTML はテキストとしてレンダリングされ、制御文字はエスケープされます。結果の通知での HTML のレンダリングは、Grafana ではサポートされていません。
メッセージテンプレートを編集するには
-
アラートページで、コンタクトポイントを選択してコンタクトポイントのリストを開きます。
-
テンプレートテーブル で、編集するテンプレートを見つけ、編集アイコン (ペン) を選択します。
-
変更を行い、テンプレートの保存 を選択します。
メッセージテンプレートを削除するには
-
アラートページで、コンタクトポイントを選択してコンタクトポイントのリストを開きます。
-
テンプレートテーブル で、削除するテンプレートを見つけ、削除アイコン (ゴミ箱) を選択します。
-
はい、削除を選択してテンプレートを削除します。
ネストされたテンプレート
テンプレートは他のテンプレートに埋め込むことができます。
例えば、 define
キーワードを使用してテンプレートフラグメントを定義できます。
{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}
その後、 template
キーワードを使用して、このフラグメント内にカスタムテンプレートを埋め込むことができます。例:
Alert summary: {{ template "mytemplate" . }}
次の組み込みテンプレートオプションを使用して、カスタムテンプレートを埋め込むことができます。
名前 | メモ |
---|---|
|
高レベルのステータス情報を表示します。 |
|
発声アラートと解決されたアラートのフォーマットされた概要を提供します。 |
カスタムテンプレートの例
カスタムテンプレートの使用方法の例を次に示します。
1 つのアラートをレンダリングするテンプレート:
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
通知メッセージ全体をレンダリングするテンプレート:
{{ define "mymessage" }} {{ if gt (len .Alerts.Firing) 0 }} {{ len .Alerts.Firing }} firing: {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }} {{ end }} {{ if gt (len .Alerts.Resolved) 0 }} {{ len .Alerts.Resolved }} resolved: {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }} {{ end }} {{ end }}
テンプレートデータ
次のデータがメッセージテンプレートに渡されます。
名前 | 型 | メモ |
---|---|---|
|
string |
通知の送信先の連絡先の名前。 |
|
string |
少なくとも 1 つのアラートが発せられている場合は発せられます。それ以外の場合は解決されます。 |
|
アラート |
この通知に含まれるアラートオブジェクトのリスト (以下を参照)。 |
|
KeyValue |
これらのアラートがグループ化されたラベル。 |
|
KeyValue |
この通知に含まれるすべてのアラートに共通するラベル。 |
|
KeyValue |
この通知に含まれるすべてのアラートに共通する注釈。 |
|
string |
通知を送信した Grafana へのリンクを戻します。外部 Alertmanager を使用している場合は、この Alertmanager へのリンクを戻します。 |
Alerts
タイプは、返されたアラートをフィルタリングするための 2 つの関数を公開します。
-
Alerts.Firing
– 発声アラートのリストを返します。 -
Alerts.Resolved
– 解決されたアラートのリストを返します。
アラート (タイプ)
アラートタイプには、次のデータが含まれます。
名前 | 型 | メモ |
---|---|---|
ステータス |
string |
|
ラベル |
KeyValue |
アラートにアタッチされたラベルのセット。 |
注釈 |
KeyValue |
アラートにアタッチされた注釈のセット。 |
StartsAt |
時刻 |
アラートが発せられた時刻。 |
EndsAt |
時刻 |
アラートの終了時刻がわかっている場合にのみ設定されます。それ以外の場合は、最後のアラートを受信してから設定可能なタイムアウト期間に設定します。 |
GeneratorURL |
string |
Grafana または外部 Alertmanager へのバックリンク。 |
SilenceURL |
string |
このアラートのラベルがあらかじめ入力されている の grafana サイレンスへのリンク。Grafana マネージドアラートの場合のみ。 |
DashboardURL |
string |
アラートルールが 1 つに属している場合は、grafana ダッシュボードにリンクします。Grafana マネージドアラートの場合のみ。 |
PanelURL |
string |
アラートルールが 1 つに属している場合は、grafana ダッシュボードパネルにリンクします。Grafana マネージドアラートの場合のみ。 |
フィンガープリント |
string |
アラートの識別に使用できるフィンガープリント。 |
ValueString |
string |
アラート内の各縮小式のラベルと値を含む文字列。 |
KeyValue タイプ
KeyValue
タイプは、ラベルと注釈を表すキーと値の文字列ペアのセットです。
として保存されたデータの直接アクセスに加えてKeyValue
、データのソート、削除、変換の方法もあります。
名前 | 引数 | 戻り値 | メモ |
---|---|---|---|
SortedPairs |
キーと値の文字列ペアのソート済みリスト |
||
Remove |
[]文字列 |
KeyValue |
指定されたキーなしでキー/値マップのコピーを返します。 |
名前 |
[]文字列 |
ラベル名のリスト |
|
[値] |
[]文字列 |
ラベル値のリスト |
テンプレート関数
テンプレート関数を使用すると、ラベルと注釈を処理して動的通知を生成できます。以下の関数を使用できます。
名前 | 引数の型 | 戻り型 | 説明 |
---|---|---|---|
|
数値または文字列 |
string |
メトリクスプレフィックスを使用して、数値をより読み取り可能な形式に変換します。 |
|
数値または文字列 |
string |
ヒューマナイズと同様に、 は 1000 ではなく 1024 をベースとして使用します。 |
|
数値または文字列 |
string |
時間を秒単位のより読みやすい形式に変換します。 |
|
数値または文字列 |
string |
比率値を 100 の分数に変換します。 |
|
数値または文字列 |
string |
Unix タイムスタンプを秒単位でより読みやすい形式に変換します。 |
|
string |
string |
strings.Title、各単語の最初の文字を大文字にします。 |
|
string |
string |
strings。ToUpper、すべての文字を大文字に変換します。 |
|
string |
string |
strings。ToLower、すべての文字を小文字に変換します。 |
|
パターン、テキスト |
ブール値 |
regexp. アンカーされていない regexp マッチのMatchString テスト。 |
|
パターン、置換、テキスト |
string |
Regexp.ReplaceAllString Regexp 置換、アンカーなし。 |
|
string - |
string |
指定された式とデータソースについて、Explore でグラフィカルビューへのパスを返します。 |
|
string - |
string |
指定された式とデータソースについて、Explore の表形式ビューへのパスを返します。 |
|
[]インターフェイス{} |
map[string]interface{} |
オブジェクトのリストを、arg0、arg1 などのキーを持つマップに変換します。この関数を使用して、複数の引数をテンプレートに渡します。 |
|
なし |
string |
外部 URL を表す文字列を返します。 |
|
なし |
string |
外部 URL のパスを返します。 |
次の表は、各関数の使用例を示しています。
機能 | TemplateString | 入力 | 予想 |
---|---|---|---|
ヒューマナイズ |
{ $value をヒューマナイズ} |
1234567.0 |
1.235 メートル |
humanize1024 |
{ humanize1024 $value } |
1048576.0 |
1Mi |
humanizeDuration |
{ humanizeDuration $value } |
899.99 |
14 分 59 秒 |
humanizePercentage |
{ humanizePercentage $value } |
0.1234567 |
12.35% |
humanizeTimestamp |
{ humanizeTimestamp $value } |
1435065584.128 |
2015-06-23 13:19:44.128 +0000 UTC |
title |
{ $value | title } |
aa bB CC |
Aa Bb Cc |
toUpper |
{ $value | toUpper } |
aa bB CC |
AA BB CC |
toLower |
{ $value | toLower } |
aa bB CC |
aa bb cc |
一致 |
{ 「a+」$labels.instance } に一致 |
aa |
true |
reReplaceAll |
{{ reReplaceAll "localhost:(.*)" "my.domain:$1" $labels.instance }} |
localhost:3000 |
my.domain:3000 |
graphLink |
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }} |
/explore?left=["now-1h"now"gdev-prometheus",{"datasource"gdev-prometheus"expr"up"instant":false,"range":true}] |
|
tableLink |
{{ tableLink "{\"expr\":\"up\", \"datasource\":\"gdev-prometheus\"}" }} |
/explore?left=["now-1h"now"gdev-prometheus",{"datasource"gdev-prometheus"expr"up"instant":true,"range":false}] |
|
args |
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}} |
1 2 |
|
externalURL |
{ externalURL } |
http://localhost/path/prefix |
|
pathPrefix |
{ pathPrefix } |
/path/prefix |