Docs Menu
Docs Home
/ /
/ / /

Webhook テンプレートの構成

Ops Manager は、 freeMarker テンプレート構文を使用した Webhook テンプレートをサポートしています。 Webhook エンドポイントに送信されるHTTPヘッダーとリクエスト本文内容の両方をカスタマイズできます。どちらのテンプレートも有効なJSON出力を生成する必要があります。

ヘッダーとボディ テンプレートの両方でさまざまな変数を使用できます。詳細については、 アラート モデルのドキュメントを確認するか、 post test messageボタンをクリックするか(ランダム データ)、アラートを保存して Webhook ペイロードを調べます(変数名はJSONキーと一致します)。

注意

すべての変数がすべての Webhook 呼び出しに含まれるわけではありません。使用可能なフィールドは、アラートの種類とステータスによって異なります。レンダリング エラーを回避するために、テンプレートが null 値を処理していることを確認してください。

Webhook テンプレートでは、次の変数を使用できます。

変数
説明

${acknowledgedUntil}

アラートが確認されたまでの ISO 8601の日付と時刻形式(UTC)のタイムスタンプ。

${acknowledgementComment}

アラートを確認したユーザーが残すコメント。

${acknowledgingUsername}

アラートを確認したユーザーのユーザー名。

${alertConfigId}

このアラートをトリガーしたアラート構成の一意の識別子。

${clusterId}

このアラートが適用されるクラスターの一意の識別子。

${clusterName}

このアラートが適用されるクラスターの名前。

${created}

アラートが開かれたときの ISO 8601の日付と時刻形式(UTC)のタイムスタンプ。

${currentValue}

(オブジェクト)アラートをトリガーしたメトリクスの現在の値。

${currentValue.number}

メトリクスの値。

${currentValue.units}

値の単位。 値は、メトリクスの型によって異なります。

${event}

このアラート通知のアクションまたは状態の変更(デフォルトの X-Mms-Event ヘッダー - alert.openedalert.closedalert.updatealert.acknowledgealert.cancelalert.inform)。

${eventTypeName}

アラートをトリガーしたイベントの名前。

${groupId}

このアラートが開かれたグループ(プロジェクト)の一意の識別子。

${hostId}

メトリクスが含まれるホストの一意の識別子。

${hostnameAndPort}

アラートが適用される各ホストのホスト名とポート。これは、ホスト名、FQDN、IPv4 アドレス、または IPv6 アドレスにすることができます。

${humanReadable}

アラートの人間が判読可能な説明。

${id}

アラートの一意の識別子です。

${lastNotified}

このアラートの最後の通知が送信されたときの ISO 8601の日付と時刻形式(UTC)のタイムスタンプ。

${links}

(オブジェクトの配列) サブリソースや関連リソースへの 1 つ以上のリンク。

${links[i].rel}

リンクされたリソースの関係タイプを記述します(例: 現在のリソースの self)。

${links[i].href}

リソースにリンクします。

${metricName}

値がしきい値を超えた測定値の名前。

${orgId}

このアラートが開かれた組織の一意の識別子。

${orgName}

このアラートが開かれた組織の名前。

${projectName}

このアラートが開かれたプロジェクト(グループ)の名前。

${replicaSetName}

レプリカセットの名前。

${requestId}

リクエストの一意の識別子。 (デフォルトの X-Mms-Request-Id ヘッダー)。

${resolved}

アラートが閉じられたときの ISO 8601の日付と時刻形式の UTC のタイムスタンプ。

${signature}

リクエスト署名。 ヘッダー テンプレートでのみ利用可能です。 (デフォルトの X-Mms-Signature ヘッダー)。

${status}

アラートの現在の状態(TRACKING|OPEN|CLOSED|CANCELLED|INFORMATIONAL

${sourceTypeName}

eventTypeName : BACKUP の場合にバックアップされるホストのタイプ

${tags}

このアラートに設定された識別ラベル。

${updated}

アラートが最後にアップデートされたときの ISO 8601の日付と時刻形式の UTC のタイムスタンプ。

さらに、正規表現を使用してテンプレート内のテキストからデータを抽出できるカスタムヘルパーである reヘルパー利用できます。

  • re.group(input, regex, group)

    最初の一致から指定されたキャプチャ グループを返します。一致しない場合は、空の文字列が返されます。

    例: ${re.group("abc-123", "([a-z]+)-(\\d+)", 2)}123

  • re.findAllGroup(input, regex, group)

    すべてのグループ一致のリストを返します。

    例:

    <#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val>${val} </#list>

    出力: 12 98 33

注意

グループインデックスは 1 ベースです。一致するものが見つからない場合は、空の string または空のリストが返されます。

{
"X-Static": "static-value",
"X-Secret": "${signature}",
"X-Request-Id": "${requestId}",
"X-Event": "${event}",
"X-Org-Name": "${orgName!''}",
"X-Test-Regex-Helper": "${re.group(\"abc-123\", \"([a-z]+)-(\\d+)\", 2)}"
}
{
"staticValue": "This value is static",
"testRegexHelper": [
<#list re.findAllGroup("error1:12;error2:98;error3:33", "error\\d+:(\\d+)", 1) as val> "${val}"<#if val_has_next>,</#if></#list>
],
"replicaSetName": "${replicaSetName!''}",
"metricName": "${metricName!''}",
"orgName": "${orgName!''}",
"created": "${created!''}",
"groupId": "${groupId!''}",
"hostId": "${hostId!''}",
"hostnameAndPort": "${hostnameAndPort!''}",
"humanReadable": "${humanReadable?js_string}",
"orgId": "${orgId!''}",
"alertConfigId": "${alertConfigId!''}",
"eventTypeName": "${eventTypeName!''}",
"links": [
<#list links![] as link>
{
"rel": "${link.rel!''}",
"href": "${link.href!''}"
}<#if link_has_next>,</#if>
</#list>
],
"id": "${id!''}",
"projectName": "${projectName!''}",
"updated": "${updated!''}",
"currentValue": {
"number": ${(currentValue.number)!0},
"units": "${(currentValue.units)!''}"
},
"status": "${status!''}"
}

Webhook テンプレートを構成したら、アラート構成インターフェースの [Test Alert] ボタンを使用してテストできます。これにより、テンプレートが正しくレンダリングされることを検証するためにサンプルデータを含むテスト通知が送信されます。

戻る

システム アラート

項目一覧