Pular para o conteúdo principal

Payload do webhook de alerta SQL

Quando um alerta do Databricks SQL muda de estado, um destino de notificação de webhook recebe um payload JSON que descreve o alerta e sua avaliação. Este formato de payload se aplica à versão mais recente dos alertas do Databricks SQL. Alertas legados usam um payload diferente.

importante

As configurações de alertas determinam quais campos adicionais o payload inclui. Os campos sem valores são omitidos. Configure seu receptor de webhook para ignorar campos desconhecidos e lidar com campos opcionais ausentes.

Exemplo de payload​

O exemplo a seguir mostra o payload de um alerta que mudou para o estado TRIGGERED. Identificadores, nomes e Timestamp são exemplos fictícios.

JSON
{
"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"
}
}
}

Campos de payload​

O payload contém os seguintes campos de envelope:

campo

Tipo

Descrição

event

String

O tipo de evento. Para alterações de estado de alerta, o valor é alert_state_change.

url_base

String

A URL base para o Databricks SQL no workspace.

alert

Objeto

Os detalhes da notificação e do alerta.

alert.title

String

O assunto da notificação personalizada renderizada. Este campo é omitido quando o alerta não define um assunto personalizado.

alert.description

String

O corpo da notificação personalizada renderizada. Este campo é omitido quando o alerta não define um corpo personalizado.

alert.alert

Objeto

Um snapshot do alerta quando a notificação foi enviada.

campo

Tipo

Descrição

event

String

O tipo de evento. Para alterações de estado de alerta, o valor é alert_state_change.

url_base

String

A URL base para o Databricks SQL no workspace.

alert

Objeto

Os detalhes da notificação e do alerta.

alert.title

String

O assunto da notificação personalizada renderizada. Este campo é omitido quando o alerta não define um assunto personalizado.

alert.description

String

O corpo da notificação personalizada renderizada. Este campo é omitido quando o alerta não define um corpo personalizado.

alert.alert

Objeto

Um snapshot do alerta quando a notificação foi enviada.

O objeto alert.alert aninhado pode conter os seguintes campos:

campo

Tipo

Descrição

id

String

O ID de recurso de alerta.

name

String

O nome do alerta.

owner

Objeto

O ID, o nome e o endereço de email do proprietário do alerta. Este campo é omitido quando os detalhes do proprietário não estão disponíveis.

created_at

Integer

A hora de criação do alerta, em milissegundos desde a época do Unix.

parent

String

O nome do recurso da pasta que contém o alerta.

query_text

String

A query SQL que o alerta avalia.

warehouse_id

String

O ID do SQL warehouse que executa a query.

custom_summary

String

O padrão de assunto de notificação personalizada. Este campo é omitido quando um assunto personalizado não está configurado.

custom_description

String

O padrão de corpo da notificação personalizada. Este campo é omitido quando um corpo personalizado não está configurado.

custom_template_format

String

O formato dos padrões personalizados, como HTML ou MARKDOWN.

evaluations

matriz

As condições de avaliação configuradas e seu estado. O valor state reflete a alteração de estado que causou a notificação.

schedule

Objeto

O programar cron Quartz, o fuso horário e o estado de pausa. Este campo é omitido quando o alerta não tem um programar.

campo

Tipo

Descrição

id

String

O ID de recurso de alerta.

name

String

O nome do alerta.

owner

Objeto

O ID, o nome e o endereço de email do proprietário do alerta. Este campo é omitido quando os detalhes do proprietário não estão disponíveis.

created_at

Integer

A hora de criação do alerta, em milissegundos desde a época do Unix.

parent

String

O nome do recurso da pasta que contém o alerta.

query_text

String

A query SQL que o alerta avalia.

warehouse_id

String

O ID do SQL warehouse que executa a query.

custom_summary

String

O padrão de assunto de notificação personalizada. Este campo é omitido quando um assunto personalizado não está configurado.

custom_description

String

O padrão de corpo da notificação personalizada. Este campo é omitido quando um corpo personalizado não está configurado.

custom_template_format

String

O formato dos padrões personalizados, como HTML ou MARKDOWN.

evaluations

matriz

As condições de avaliação configuradas e seu estado. O valor state reflete a alteração de estado que causou a notificação.

schedule

Objeto

O programar cron Quartz, o fuso horário e o estado de pausa. Este campo é omitido quando o alerta não tem um programar.

Dependendo da configuração do alerta, o objeto aninhado também pode incluir parameters, genie_analysis_enabled, genie_analysis_custom_prompt e genie_analysis_references.

Cada objeto na matriz evaluations pode conter os seguintes campos:

campo

Tipo

Descrição

id

String

O ID da condição de avaliação.

source

Objeto

A coluna de resultado da query e a agregação que a condição avalia.

comparison_operator

String

O operador de comparação, como GREATER_THAN, EQUAL ou IS_NULL.

threshold

Objeto

O valor ou a coluna de resultados da query que é comparada com a fonte.

empty_result_state

String

O estado a usar quando a query não retorna linhas. Este campo é omitido quando o alerta não define um estado de resultado vazio.

notification

Objeto

O intervalo de retrigger, a configuração de notificação em caso de OK e os IDs de destino de notificação.

state

String

O estado de avaliação que causou a notificação: TRIGGERED, OK ou ERROR.

last_evaluated_at

Integer

O tempo de avaliação, em milissegundos desde a época Unix.

last_triggered_at

Integer

A última hora do trigger, em milissegundos desde a época Unix. Este campo é omitido quando o alerta não foi acionado.

campo

Tipo

Descrição

id

String

O ID da condição de avaliação.

source

Objeto

A coluna de resultado da query e a agregação que a condição avalia.

comparison_operator

String

O operador de comparação, como GREATER_THAN, EQUAL ou IS_NULL.

threshold

Objeto

O valor ou a coluna de resultados da query que é comparada com a fonte.

empty_result_state

String

O estado a usar quando a query não retorna linhas. Este campo é omitido quando o alerta não define um estado de resultado vazio.

notification

Objeto

O intervalo de retrigger, a configuração de notificação em caso de OK e os IDs de destino de notificação.

state

String

O estado de avaliação que causou a notificação: TRIGGERED, OK ou ERROR.

last_evaluated_at

Integer

O tempo de avaliação, em milissegundos desde a época Unix.

last_triggered_at

Integer

A última hora do trigger, em milissegundos desde a época Unix. Este campo é omitido quando o alerta não foi acionado.

Proteger o payload do webhook​

O payload pode conter metadados confidenciais do Workspace, incluindo a query SQL, a identidade do proprietário do alerta e o conteúdo personalizado da notificação. Proteja o endpoint receptor e limite o acesso a payloads armazenados. Para opções de rede e autenticação de webhook, consulte Gerenciar destinos de notificação.