Databricks SQLアラートの状態が変わると、Webhook通知の宛先はアラートとその評価を説明するJSONペイロードを受け取ります。 このペイロード形式は、最新バージョンのDatabricks SQLアラートに適用されます。 レガシーアラートは 異なるペイロードを使用します。
Important
アラート構成はペイロードに含まれる追加フィールドを決定します。 値のないフィールドは省略されます。 ウェブフックのレシーバーが未知のフィールドを無視し、存在しないオプション フィールドを処理できるように設定してください。
ペイロードの例
以下の例は、 TRIGGERED 状態に変化したアラートのペイロードを示しています。 識別子、名前、タイムスタンプは架空の例です。
{
"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"
}
}
}
ペイロード フィールド
ペイロードには以下のエンベロープフィールドが含まれています:
| フィールド | タイプ | Description |
|---|---|---|
event |
String | イベントの種類。 アラート状態の変化については、値は alert_state_changeです。 |
url_base |
String | ワークスペース内のDatabricks SQLの基本URL。 |
alert |
Object | 通知とアラートの詳細です。 |
alert.title |
String | レンダリングされたカスタム通知の件名。 このフィールドは、アラートでカスタム主題が定義されていない場合に省略されます。 |
alert.description |
String | レンダリング後のカスタム通知本文。 このフィールドは、アラートがカスタムボディを定義していない場合は省略されます。 |
alert.alert |
Object | 通知が送信された時のアラートのスナップショット。 |
ネストされた alert.alert オブジェクトには以下のフィールドを含めることができます:
| フィールド | タイプ | Description |
|---|---|---|
id |
String | アラートリソースID。 |
name |
String | アラート名。 |
owner |
Object | アラート所有者のID、氏名、メールアドレス。 所有者の詳細がない場合はこの欄は省略されます。 |
created_at |
Integer | アラート作成時間はUnixエポック以降のミリ秒単位です。 |
parent |
String | アラートを含むフォルダのリソース名。 |
query_text |
String | アラートが評価するSQLクエリです。 |
warehouse_id |
String | クエリを実行するSQLウェアハウスのIDです。 |
custom_summary |
String | カスタム通知件名テンプレート。 カスタム件名が設定されていない場合、このフィールドは省略されます。 |
custom_description |
String | カスタム通知本文テンプレート カスタムボディが設定されていない場合、このフィールドは省略されます。 |
custom_template_format |
String |
HTML や MARKDOWN などのカスタムテンプレートの形式。 |
evaluations |
Array | 設定された評価条件とその状態。
state値は通知を引き起こした状態の変化を反映しています。 |
schedule |
Object | Quartzのcronスケジュール、タイムゾーン、そして一時停止の状態。 このフィールドはアラートにスケジュールがない場合は省略されます。 |
アラート構成によっては、ネストされたオブジェクトには parameters、 genie_analysis_enabled、 genie_analysis_custom_prompt、 genie_analysis_referencesも含まれます。
evaluations配列内の各オブジェクトは以下のフィールドを含めることができます:
| フィールド | タイプ | Description |
|---|---|---|
id |
String | 評価条件ID。 |
source |
Object | 条件によって評価されるクエリ結果の列と集計 |
comparison_operator |
String | 比較演算子は GREATER_THAN、 EQUAL、 IS_NULLなどです。 |
threshold |
Object | ソースの比較対象となる値またはクエリ結果の列です。 |
empty_result_state |
String | クエリが行を返さない場合に使う状態。 このフィールドは、アラートが空の結果状態を定義していない場合は省略されます。 |
notification |
Object | 再トリガー間隔、notify-on-OK設定、通知先ID |
state |
String | 通知の原因となった評価状態は TRIGGERED、 OK、または ERRORです。 |
last_evaluated_at |
Integer | 評価時間はUnixエポック以降のミリ秒単位です。 |
last_triggered_at |
Integer | 最後にトリガーされた時間は、Unixエポック以降のミリ秒単位です。 このフィールドはアラートが発動していない場合に省略されます。 |
ウェブフックペイロードの保護
ペイロードにはSQLクエリ、アラート所有者のアイデンティティ、カスタム通知コンテンツなどの機密ワークスペースメタデータが含まれることがあります。 受信端を保護し、保存されたペイロードへのアクセスを制限します。 ウェブフックのネットワークおよび認証オプションについては、通知宛先の管理をご覧ください。