Payload de alerta SQL para webhook

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

Importante

Configurações de alerta determinam quais campos adicionais a carga útil inclui. Campos sem valores são omitidos. Configure seu receptor webhook para ignorar campos desconhecidos e lidar com campos opcionais ausentes.

Exemplo de payload

O exemplo a seguir mostra a carga útil de um alerta que mudou para o TRIGGERED estado. Identificadores, nomes e carimbos de data e hora são exemplos fictícios.

{
  "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 carga útil

A carga útil contém os seguintes campos de envelope:

Field Tipo Description
event String O tipo de evento. Para mudanças no estado de alerta, o valor é alert_state_change.
url_base String A URL base do Databricks SQL no workspace.
alert Object Os detalhes da notificação e do alerta.
alert.title String O assunto de notificação personalizado renderizado. Esse campo é omitido quando o alerta não define um assunto personalizado.
alert.description String O corpo de notificação personalizado renderizado. Esse campo é omitido quando o alerta não define um corpo personalizado.
alert.alert Object Um instantâneo do alerta quando a notificação foi enviada.

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

Field Tipo Description
id String O ID do recurso de alerta.
name String O nome do alerta.
owner Object O ID, nome e endereço de e-mail do proprietário do alerta. Este campo é omitido quando os detalhes do proprietário não estão disponíveis.
created_at Integer O tempo de criação do alerta, em milissegundos desde a época Unix.
parent String O nome do recurso da pasta que contém o alerta.
query_text String A consulta SQL que o alerta avalia.
warehouse_id String O ID do SQL warehouse que executa a consulta.
custom_summary String O modelo personalizado de assunto de notificação. Esse campo é omitido quando um assunto personalizado não está configurado.
custom_description String O modelo personalizado do corpo da notificação. Esse campo é omitido quando um corpo personalizado não está configurado.
custom_template_format String O formato dos templates personalizados, como HTML ou MARKDOWN.
evaluations Array As condições de avaliação configuradas e seu estado. O state valor reflete a mudança de estado que causou a notificação.
schedule Object O agendamento cron do Quartz, fuso horário e estado pausado. Esse campo é omitido quando o alerta não tem um agendamento.

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 no evaluations array pode conter os seguintes campos:

Field Tipo Description
id String O ID da condição de avaliação.
source Object A coluna do resultado da consulta 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 Object A coluna de valor ou resultado da consulta contra a qual a fonte é comparada.
empty_result_state String O estado a ser usado quando a consulta não retorna linhas. Esse campo é omitido quando o alerta não define um estado de resultado vazio.
notification Object O intervalo de retrigger, a configuração notify-on-OK e os IDs de destino das notificações.
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 O horário do último acionamento, em milissegundos desde a época Unix. Esse campo é omitido quando o alerta não foi acionado.

Proteja o payload do webhook

O payload pode conter metadados sensíveis do workspace, incluindo a consulta SQL, a identidade do dono do alerta e conteúdo personalizado de notificações. Proteja o endpoint receptor e limite o acesso a cargas úteis armazenadas. Para opções de rede e autenticação de webhook, veja Gerenciar destinos de notificação.