Databricks SQL 알림이 상태가 변경되면, 웹훅 알림 목적지는 알림과 그 평가를 설명하는 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"
}
}
}
페이로드 필드
페이로드는 다음과 같은 엔벨로프 필드를 포함합니다:
| Field | Type | 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 객체는 다음 필드를 포함할 수 있습니다:
| Field | Type | Description |
|---|---|---|
id |
String | 경고 자원 ID. |
name |
String | 경고 이름 |
owner |
Object | 알림 소유자의 ID, 이름, 이메일 주소. 소유자 정보가 없을 때는 이 필드가 생략됩니다. |
created_at |
Integer | 유닉스 에포크 이후 밀리초 단위의 경고 생성 시간. |
parent |
String | 알림이 포함된 폴더의 리소스 이름입니다. |
query_text |
String | 알림이 평가하는 SQL 쿼리입니다. |
warehouse_id |
String | 쿼리를 실행하는 SQL 웨어하우스의 ID입니다. |
custom_summary |
String | 맞춤형 알림 제목 템플릿. 커스텀 주제가 설정되지 않으면 이 필드는 생략됩니다. |
custom_description |
String | 커스텀 알림 본문 템플릿. 커스텀 바디가 설정되지 않은 경우에는 이 필드가 생략됩니다. |
custom_template_format |
String | 예: HTML 또는 MARKDOWN와 같은 맞춤 템플릿의 형식. |
evaluations |
배열 | 구성된 평가 조건과 그 상태.
state 값은 알림을 일으킨 상태 변화를 반영합니다. |
schedule |
Object | Quartz 크론 일정, 시간대, 그리고 일시정지 상태. 알림에 일정이 없을 때는 이 필드가 생략됩니다. |
알림 구성에 따라 중첩된 객체에는 genie_analysis_enabled, genie_analysis_custom_prompt, genie_analysis_references, and parameters도 포함될 수 있습니다.
배열의 evaluations 각 객체는 다음 필드를 포함할 수 있습니다:
| Field | Type | 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 | 유닉스 에포크 이후의 시간을 밀리초로 나타낸 평가 시간입니다. |
last_triggered_at |
Integer | 유닉스 에포크 이후 밀리초 단위의 마지막 트리거된 시간. 경고가 발동되지 않았을 때는 이 필드가 생략됩니다. |
웹훅 페이로드를 안전하게 보호하세요
페이로드에는 SQL 쿼리, 알림 소유자 신원, 사용자 지정 알림 콘텐츠 등 민감한 작업 공간 메타데이터가 포함될 수 있습니다. 수신 엔드포인트를 보호하고 저장된 페이로드에 대한 접근을 제한하세요. 웹훅 네트워킹 및 인증 옵션에 대해서는 '알림 목적지 관리'를 참조하세요.