Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

メッセージテンプレートの使用

フォーカスモード
メッセージテンプレートの使用 - Amazon Managed Grafana

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

このドキュメントのトピックは、Grafana バージョン 8.x をサポートする Grafana ワークスペース向けです。

Grafana バージョン 10.x をサポートする Grafana ワークスペースについては、「Grafana バージョン 10 での作業」を参照してください。

Grafana バージョン 9.x をサポートする Grafana ワークスペースについては、「Grafana バージョン 9 での作業」を参照してください。

コンタクトポイント (通知先) の使用 経由で送信される通知は、メッセージングテンプレートを使用して構築されます。Grafana のデフォルトテンプレートは Go テンプレートシステムに基づいており、一部のフィールドはテキストとして評価され、他のフィールドは HTML (エスケープに影響する可能性があります) として評価されます。

コンタクトポイントに使用するほとんどのフィールドはテンプレート化できるため、再利用可能なカスタムテンプレートを作成し、複数のコンタクトポイントで使用すると良いでしょう。この テンプレートのデータ トピックでは、テンプレートに使用できる変数一覧を紹介します。

テンプレートの使用

テンプレートはメッセージを作成するために使用されます。例えば、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 }}

以下に、カスタムメッセージテンプレートを作成、編集、削除する手順を紹介します。

メッセージテンプレートの作成方法
  1. Grafana コンソールの Grafana メニューで、[アラート] (ベル) アイコンを選択して [アラート] ページを開きます。

  2. [コンタクトポイント] を選択します。

  3. [アラートマネージャー] ドロップダウンから、メッセージテンプレートを作成するアラートマネージャーインスタンスを選択します。デフォルトは Grafana アラートマネージャーです。

  4. テンプレートを追加を選択します。

  5. わかりやすい名前を付けます。

  6. テンプレートの内容を追加します。例:

    {{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}

    コンテンツセクションの define タグは、テンプレート名を割り当てます。このタグはオプションです。省略した場合、テンプレート名は名前フィールドから取得されます。両方を指定する場合、一致させておくことが推奨されます。

  7. [テンプレートを保存] を選択します。

注記

アラートメッセージテンプレートの HTML はテキストとして表示され、制御文字はエスケープされます。Grafana では、通知での HTML 形式の表示はサポートされていません。

メッセージテンプレートを編集するには
  1. アラートページで、[コンタクトポイント]を選択してコンタクトポイントのリストを開きます。

  2. テンプレートテーブルの編集するテンプレートで編集アイコン (ペン) を選択します。

  3. 変更後、[テンプレートを保存] を選択します。

メッセージテンプレートを削除するには
  1. アラートページで、[コンタクトポイント]を選択してコンタクトポイントのリストを開きます。

  2. テンプレートテーブルの削除するテンプレートで削除アイコン (ゴミ箱) を選択します。

  3. [はい、削除します] を選択してテンプレートを削除します。

テンプレートのネスト

テンプレートは他のテンプレートに埋め込むことができます。

例えば、define キーワードを使用してテンプレートの一部を定義することができます。

{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}

その後、 template キーワードを使用して、このフラグメント内にカスタムテンプレートを埋め込むことができます。以下に例を示します。

Alert summary: {{ template "mytemplate" . }}

以下のビルトインのテンプレートオプションを使用して、カスタムテンプレートを埋め込むことができます。

名前 メモ

default.title

全体的なステータス情報を表示します。

default.message

発生中および解決済みのアラートの概要をフォーマット付きで提供します。

カスタムテンプレートの例

以下にカスタムテンプレートの使用方法の例を紹介します。

単一のアラートを表示するテンプレート:

{{ 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 }}

テンプレートのデータ

メッセージテンプレートには、次のデータが渡されます。

名前 メモ

Receiver

文字列

コンタクトポイント (通知先) の名前。

Status

文字列

少なくとも 1 つのアラートが発生している場合は「発生中」となり、それ以外の場合「解決済」となります。

Alerts

アラート

この通知に含まれるアラートオブジェクトのリスト (以下を参照)。

GroupLabels

KeyValue

これらのアラートがグループ化されたラベル。

CommonLabels

KeyValue

この通知に含まれるすべてのアラートに共通のラベル。

CommonAnnotations

KeyValue

この通知に含まれるすべてのアラートに共通する注釈。

ExternalURL

文字列

通知の送信元である Grafana へのリンク。外部のアラートマネージャーを使用している場合、そのアラートマネージャーへのリンク。

Alerts 型には、返されたアラートをフィルタリングするための 2 つの関数があります。

  • Alerts.Firing – 発生中のアラートのリストを返します。

  • Alerts.Resolved – 解決済みのアラートのリストを返します。

アラート (型)

アラート型には、次のデータがあります。

名前 メモ

ステータス

文字列

firing または resolved

ラベル

KeyValue

アラートに付与された一連のラベル。

‏注釈

KeyValue

アラートに付与された一連の注釈。

StartsAt

time.Time

アラートが発行された時刻。

EndsAt

time.Time

アラートの終了時刻がわかっている場合にのみ設定されます。それ以外の場合、最後にアラートを受信してから設定可能なタイムアウト期間が適用されます。

GeneratorURL

文字列

Grafana または外部アラートマネージャーへのリンク。

SilenceURL

文字列

このアラートのラベルが事前に入力された grafana のサイレンスへのリンク。Grafana 管理のアラートのみ。

DashboardURL

文字列

Grafana ダッシュボードへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。

PanelURL

文字列

Grafana ダッシュボードパネルへのリンク (アラートルールが Grafana に属している場合)。Grafana 管理のアラートのみ。

Fingerprint

文字列

アラートの識別に使用するフィンガープリント。

ValueString

文字列

アラート内の各削減された式のラベルと値を含む文字列。

KeyValue 型

KeyValue 型は、キー (ラベル) 値 (注釈) の文字列を組み合わせたものです。

KeyValue として保存されたデータに直接アクセスするメソッドだけでなく、データをソート、削除、変換するメソッドも備えています。

名前 引数 戻り値 メモ

SortedPairs

キーと値の文字列のソート済みのリスト

削除

[]string

KeyValue

指定したキーを除いたキー/値のマップのコピーを返します。

名前

[]string

ラベル名のリスト

[]string

ラベル値のリスト

テンプレート関数

テンプレート関数を使用すると、ラベルと注釈を処理して動的に通知を生成できます。以下の機能を使用できます。

名前 引数の型 戻り型 説明

humanize

数値または文字列

文字列

メトリクスプレフィックスを使用して、数値をより読み取り可能な形式に変換します。

humanize1024

数値または文字列

文字列

humanize と同様に、1000 ではなく 1024 を基準にします。

humanizeDuration

数値または文字列

文字列

時間を秒単位のより読みやすい形式に変換します。

humanizePercentage

数値または文字列

文字列

比率の値を 100 分の 1 の形に変換します。

humanizeTimestamp

数値または文字列

文字列

Unix のタイムスタンプを秒単位のより読みやすい形式に変換します。

title

文字列

文字列

strings.Title を使用すると、各単語の最初の文字が大文字になります。

toUpper

文字列

文字列

strings.ToUpper を使用すると、文字列がすべて大文字に変換されます。

toLower

文字列

文字列

strings.ToLower を使用すると、文字列がすべて小文字に変換されます。

match

パターン、テキスト

boolean

regexp.MatchString を使用すると、アンカーなしでの正規表現の一致テストを実行できます。

reReplaceAll

パターン、置換、テキスト

文字列

Regexp.ReplaceAllString を使用すると、アンカーなしでの正規表現による置換が実行できます。

graphLink

文字列 - expr および datasource フィールドを持つ JSON オブジェクト

文字列

指定された式とデータソースに対するグラフィカルビューへのパスを返します。

tableLink

文字列 - expr および datasource フィールドを持つ JSON オブジェクト

文字列

指定された式とデータソースに対するタブ形式ビューへのパスを返します。

args

[]interface{}

map[string]interface{}

オブジェクトのリストを arg0、arg1 などのキーを持つマップに変換します。複数の引数をテンプレートに渡す場合、この関数を使用します。

externalURL

なし

文字列

外部 URL を表す文字列を返します。

pathPrefix

なし

文字列

外部 URL のパスを返します。

次の表に、各関数の使用例を紹介します。

関数 TemplateString Input 予想

humanize

{ humanize $value }

1234567.0

1.235M

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

match

{ match "a+" $labels.instance }

aa

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

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.