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