SQLアラートWebhookペイロード
Databricks SQLアラートの状態が変わると、Webhook通知先にアラートとその評価について説明するJSONペイロードが送信されます。このペイロード形式は、最新バージョンのDatabricks SQLアラートに適用されます。レガシーアラートでは、異なるペイロードが使用されます。
アラート設定は、ペイロードにどの追加フィールドが含まれるかを決定します。値のないフィールドは省略されます。不明なフィールドを無視し、欠落しているオプションフィールドを処理するように Webhook 受信者を構成します。
ペイロードの例
次の例は、 TRIGGERED 状態に変更されたアラートのペイロードを示しています。識別子、名前、Timestampは架空の例です。
{
"event": "alert_state_change",
"url_base": "https://<workspace-url>/sql?o=1234567890123456",
"alert": {
"title": "Alert \"Daily revenue\" changed status to TRIGGERED",
"description": "Daily revenue exceeded the configured threshold.",
"alert": {
"id": "9876543210987654",
"name": "Daily revenue",
"owner": {
"id": 2468013579246801,
"name": "Alex Smith",
"email": "alex.smith@example.com"
},
"created_at": 1767225600000,
"parent": "folders/1357924680135792",
"query_text": "SELECT SUM(revenue) AS total_revenue FROM main.sales.daily",
"warehouse_id": "4b9b953939869799",
"custom_summary": "Alert \"{{ALERT_NAME}}\" changed status to {{ALERT_STATUS}}",
"custom_description": "Daily revenue exceeded the configured threshold.",
"evaluations": [
{
"id": "9a1f0fc0-7d18-4f42-8ec0-9c1f8e72d3a4",
"source": {
"name": "total_revenue",
"display": "total_revenue",
"aggregation": "AGGREGATION_UNSPECIFIED"
},
"comparison_operator": "GREATER_THAN",
"threshold": {
"value": {
"double_value": 100000.0
}
},
"empty_result_state": "OK",
"notification": {
"seconds_to_retrigger": 3600,
"notify_on_ok": true,
"subscriptions": [
{
"destination_id": "6d1f7e62-a9d4-4b32-b79d-2b1f9f5a6c80"
}
]
},
"state": "TRIGGERED",
"last_evaluated_at": 1767229200000,
"last_triggered_at": 1767229200000
}
],
"schedule": {
"quartz_cron_schedule": "0 0 * * * ?",
"timezone_id": "UTC",
"paused": false
},
"custom_template_format": "HTML"
}
}
}
ペイロードフィールド
ペイロードには、次のエンベロープフィールドが含まれています。
フィールド | Type | 説明 |
|---|---|---|
| String | イベントタイプ。アラートの状態の変化については、値は |
| String | ワークスペース内のDatabricks SQLのベースURL。 |
| オブジェクト | 通知とアラートの詳細。 |
| String | レンダリングされたカスタム通知の件名。アラートにカスタム件名が定義されていない場合、このフィールドは省略されます。 |
| String | レンダリングされたカスタム通知本文。このフィールドは、アラートがカスタム本文を定義していない場合に省略されます。 |
| オブジェクト | 通知が送信されたときのアラートのスナップショット。 |
入れ子にされたalert.alertオブジェクトには、次のフィールドを含めることができます。
フィールド | Type | 説明 |
|---|---|---|
| String | アラートリソースID。 |
| String | アラート名。 |
| オブジェクト | アラート所有者の ID、名前、およびメールアドレス。所有者の詳細が利用できない場合、このフィールドは省略されます。 |
| Integer | アラート作成時間(Unixエポックからのミリ秒単位)。 |
| String | アラートが含まれるフォルダのリソース名。 |
| String | アラートが評価するSQLクエリー。 |
| String | クエリーを実行するSQLウェアハウスのID。 |
| String | カスタム通知の件名Template。このフィールドは、カスタム件名が構成されていない場合に省略されます。 |
| String | カスタム通知の本文Template。カスタム本文が設定されていない場合、このフィールドは省略されます。 |
| String |
|
| Array | 設定された評価条件とその状態。 |
| オブジェクト | Quartz cronスケジュール、タイムゾーン、および停止する状態。アラートにスケジュールがない場合、このフィールドは省略されます。 |
アラート構成に応じて、ネストされたオブジェクトには parameters、 genie_analysis_enabled、 genie_analysis_custom_prompt、および genie_analysis_references も含めることができます。
evaluations 配列内の各オブジェクトには、次のフィールドを含めることができます。
フィールド | Type | 説明 |
|---|---|---|
| String | 評価条件ID。 |
| オブジェクト | 条件が評価するクエリー結果の列と集計。 |
| String |
|
| オブジェクト | ソースが比較される値またはクエリー結果の列。 |
| String | クエリーが返した行が0件のときに使用する状態。アラートに空の結果の状態が定義されていない場合、このフィールドは省略されます。 |
| オブジェクト | 再トリガー間隔、「OK」時に通知設定、および通知先 ID。 |
| String | 通知を引き起こした評価状態: |
| Integer | 評価時間。Unix エポックからのミリ秒単位。 |
| Integer | 最後の Trigger 時間。Unix エポックからのミリ秒単位。アラートがトリガーされていない場合、このフィールドは省略されます。 |
Webhookペイロードの保護
ペイロードには、SQLクエリー、アラート所有者のID、カスタム通知コンテンツなど、機密性の高いワークスペースメタデータが含まれる場合があります。受信Endpointを保護し、保存されたペイロードへのアクセスを制限します。Webhookのネットワークおよび認証オプションについては、「通知先を管理する」を参照してください。