通知メッセージのテンプレートを使うと、サードパーティの送信先に送信する前に、通知イベントデータをカスタマイズすることができます。テンプレートは、お客様のカスタム値をサードパーティの送信先で使用される値にマッピングします。
これにより、どのようなデータがどこに送信されるかを完全にコントロールすることができ、お客様が利用するサービスを十分に活用することができます。
メッセージテンプレートの変数
メッセージテンプレートとは、New Relic のイベントデータをサードパーティサービスで利用可能なデータに変換するために使用するものです。変数は、サードパーティサービスのデータフィールドにマッピングされる特定の属性です。
メッセージ テンプレートは、 Handlebarsと呼ばれる単純なテンプレート言語で記述されます。メッセージ テンプレート内の変数は、二重中括弧{{ }}
内の式として記述されます。
通知メッセージテンプレートを使用して、New Relic の通知を外部サービスのフィールドにマッピングします。
変数メニュー
New Relic の変数名は、メッセージテンプレートの変数メニューに記載されています。変数はサブカテゴリーに分類されています。
変数メニューで{{
と入力して、変数のリストから選択します。入力すると、オートコンプリートによって変数名が表示されます。変数の型は右側に書かれています。これらの変数に強化されたデータを追加できます。
変数メニューには、New Relic の通知フィールドを外部サービスのフィールドにマッピングする際のオプションが表示されます。
Handlebarsの構文を使う
イベントで通知が発生すると、メッセージテンプレートはハンドルバー変数を使用して、通知データをサードパーティサービスが使用するフィールドにマッピングします。
Handlebars 言語は、基本的な変数置換に加えて、反復 (ループ)、条件ステートメントなど、 ネストされた入力オブジェクト と関数の評価を含む多くの機能を提供します。 ハンドルバーでは、これらの関数はヘルパーと呼ばれます。ワークフローで使用される変数の説明については 、ここをクリック してください。
ヘルパー機能
私たちのメッセージテンプレートは、Handlebars 組み込みヘルパー をサポートしています。
さらに、あなたの役に立つかもしれない他のヘルパーも追加しました。
ヘルパー関数はネストすることもできます。次に例を示します。
{{#eq "a" b}} yes1 {{else}}{{#eq "a" c}} yes2 {{else}}} no {{/eq}}{{/eq}}
使用例
例は、 data
という変数に基づいています。
"data": { "tags":["infra, team-a"], "id":123456789, "name": "Alice",}
data
値は、同等のドット表記形式です。
"data.tags": ["infra, team-a"]"data.id": 123456789"data.name": "Alice"
データの検証
id
が123456789
と等しい場合、出力はvalid
です。そうでない場合、出力はnot valid
です。
name
がAlice
と等しい場合、出力はvalid
です。
JSONを返す
tags
とオブジェクトのプロパティを JSON 形式で取得します。
そうすると、次のようなJSONが返ってきます。
["infra", "team-a"]
配列からの値の取得
tags
配列から最初のタグを取得します。
これは、配列から最初の値を返すことになります。
$"infra"
配列の反復処理
配列型の変数をイテレートし、その値を文字列に集約します。
,
結果には、カンマで区切られたタグが含まれます(末尾のカンマは省略されます)。
$infra, team
同様に、 data
変数を反復し、オブジェクトの値を集計して、JSON 要素を出力します。
これは次のようなJSONを返します。
{ "tags": ["infra, team-a"], "name": "Alice", "id": "123456789"}
data
変数を反復処理してから、オブジェクトのエントリを文字列に集約します。
: ,
これは次のような文字列を返します。
$tags: infra,team-a, name: Alice, id: 123456789
欠落した属性の処理
場合によっては、ある属性が 変数メニュー に存在しなかったり、全く存在しないこともあります。
#if
ステートメントを使用して、次のようなフォールバックを設定できます。
"N/A"
文字列"N/A"
を返します。