通知ポリシーを作成するときに、アラート通知をカスタム Webhook URL に送信するように指定できます。Managed Service for OpenTelemetry は、Webhook アラートをサードパーティの通知エンドポイントに送信することをサポートしています。このトピックでは、Lark を例として使用して、Webhook を使用して通知を送信する方法を示します。
ステップ 1:Webhook URL を取得する
コンピューターに Lark チャットボットを設定します。
Lark を開き、ログインします。
[+] アイコンをクリックし、[新規グループ] を選択して、アラート送信用の新しいグループを作成します。
グループ設定アイコンをクリックし、[BOT] タブをクリックします。
[BOT] タブで、[ボットの追加] をクリックします。

[ボットの追加] ダイアログボックスで、[カスタムボット] を選択します。

[BOT 名] と [説明] を設定し、[追加] をクリックします。

[コピー] をクリックし、次に [webhook URL] の横にある [保存] をクリックします。

ステップ 2:Webhook を作成する
Managed Service for OpenTelemetry コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。次に、[webhook 統合] タブで、[webhook を作成] をクリックします。
[webhook を作成] パネルで、以下のパラメーターを構成します。
パラメーター
説明
Webhook 名
必須。Webhook の名前を入力します。
Post または Get
必須。リクエストメソッドを指定します。URL は 256 文字以内にする必要があります。
この例では、[Post] を選択し、ステップ 1:Webhook URL を取得する で保存した Webhook URL を右側のテキストボックスに貼り付けます。
ヘッダーまたはパラメーター
オプション。リクエストヘッダーを指定します。リクエストヘッダーは 200 文字以内にすることができます。[+ 作成] をクリックして、ヘッダーまたはパラメーターを追加します。デフォルトのリクエストヘッダーは [Content-Type: text/plain; charset=UTF-8] です。ヘッダーとパラメーターの合計数は 6 を超えることはできません。
この例では、次の 2 つのヘッダーを設定します。
Arms-Content-Type : json
Content-Type : application/json
通知テンプレート
オプション。アラートがトリガーされたときに送信するコンテンツを指定します。このパラメーターは、Post を選択した場合にのみ表示されます。$content プレースホルダーを使用して、通知コンテンツを指定できます。コンテンツは 500 文字以内にする必要があります。詳細については、「通知テンプレートと Webhook テンプレートを構成する」をご参照ください。
次の形式で通知テンプレートを指定します。
{ "Alert name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification policy":"{{ .dispatchRuleName }}", "Alert time":"{{ .startTime }}", "Notification content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }この例では、次のテンプレートが使用されます。
{ "msg_type": "text", "content": { "text": "Alert name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}集群名称: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification policy: {{ .dispatchRuleName }} \nAlert time: {{ .startTime }} \nNotification content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }アラートをクリアするためのテンプレート
オプション。アラートが解決されたときに送信するコンテンツを指定します。このパラメーターは、Post を選択した場合にのみ表示されます。$content プレースホルダーを使用して、通知コンテンツを指定できます。コンテンツは 500 文字以内にする必要があります。詳細については、「通知テンプレートと Webhook テンプレートを構成する」をご参照ください。
次の形式で通知コンテンツを指定します。
{ "Alert name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification policy":"{{ .dispatchRuleName }}", "Time when the alert was resolved":"{{ .endTime }}", "Notification content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }この例では、次のテンプレートが使用されます。
{ "msg_type": "text", "content": { "text": "Alert name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Time when the alert was resolved: {{ .startTime }} \nNotification policy: {{ .dispatchRuleName }} \nNotification content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }[テスト送信] をクリックして、構成が有効かどうかを確認します。
[OK] をクリックします。
ステップ 3:通知ポリシーを構成する
通知ポリシーを作成または変更するときに、[通知オブジェクト] パラメーターを [ユニバーサル Webhook] に設定し、目的の Webhook を選択します。
Webhook を使用して送信されるアラート通知のタイムアウト期間は 5 秒です。通知の送信後 5 秒以内に Webhook が応答を受信しない場合、通知の送信は失敗します。