Payload de webhook de alerta SQL

Cuando una alerta SQL de Databricks cambia de estado, un destino de notificación webhook recibe una carga útil JSON que describe la alerta y su evaluación. Este formato de payload se aplica a la última versión de las alertas SQL de Databricks. Las alertas heredadas usan una carga útil diferente.

Importante

Las configuraciones de alerta determinan qué campos adicionales incluye la carga útil. Se omiten los campos sin valores. Configura tu receptor webhook para ignorar campos desconocidos y gestionar los campos opcionales que faltan.

Ejemplo de carga útil

El siguiente ejemplo muestra la carga útil de una alerta que cambió al TRIGGERED estado. Identificadores, nombres y marcas de tiempo son ejemplos ficticios.

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

La carga útil contiene los siguientes campos de envolvente:

Field Tipo Description
event String El tipo de evento. Para los cambios de estado de alerta, el valor es alert_state_change.
url_base String La URL base de Databricks SQL en el espacio de trabajo.
alert Object Los detalles de la notificación y la alerta.
alert.title String El asunto de notificación personalizado mostrado. Este campo se omite cuando la alerta no define un asunto personalizado.
alert.description String El cuerpo de notificación personalizado renderizado. Este campo se omite cuando la alerta no define un cuerpo personalizado.
alert.alert Object Una instantánea de la alerta cuando se envió la notificación.

El objeto anidado alert.alert puede contener los siguientes campos:

Field Tipo Description
id String El ID de recurso de alerta.
name String Nombre de la alerta.
owner Object El ID, nombre y dirección de correo electrónico del propietario de la alerta. Este campo se omite cuando no hay datos del propietario disponibles.
created_at Entero La hora de creación de la alerta, en milisegundos desde la época Unix.
parent String El nombre del recurso de la carpeta que contiene la alerta.
query_text String La consulta SQL que la alerta evalúa.
warehouse_id String El ID del almacén de SQL que ejecuta la consulta.
custom_summary String La plantilla personalizada del asunto de la notificación. Este campo se omite cuando no se configura un asunto personalizado.
custom_description String La plantilla personalizada para el cuerpo de la notificación. Este campo se omite cuando no se configura un cuerpo personalizado.
custom_template_format String El formato de las plantillas personalizadas, como HTML o MARKDOWN.
evaluations Array Las condiciones de evaluación configuradas y su estado. El state valor refleja el cambio de estado que causó la notificación.
schedule Object El calendario cron de Quartz, la zona horaria y el estado pausado. Este campo se omite cuando la alerta no tiene programación.

Dependiendo de la configuración de alertas, el objeto anidado también puede incluir parameters, genie_analysis_enabled, genie_analysis_custom_prompt, y genie_analysis_references.

Cada objeto en el evaluations array puede contener los siguientes campos:

Field Tipo Description
id String El ID de la condición de evaluación.
source Object La columna de resultados de la consulta y la agregación que evalúa la condición.
comparison_operator String El operador de comparación, como GREATER_THAN, EQUAL, o IS_NULL.
threshold Object La columna de valor o resultado de consulta con la que se compara la fuente.
empty_result_state String El estado a usar cuando la consulta no devuelve filas. Este campo se omite cuando la alerta no define un estado de resultado vacío.
notification Object El intervalo de reactivación, la configuración de notificar al estar OK y los identificadores de destino de notificaciones.
state String El estado de evaluación que causó la notificación: TRIGGERED, OK, o ERROR.
last_evaluated_at Entero El tiempo de evaluación, en milisegundos desde la época Unix.
last_triggered_at Entero La última hora de activación, en milisegundos desde la época Unix. Este campo se omite cuando la alerta no se ha activado.

Protege la carga útil del webhook

La carga útil puede contener metadatos sensibles del espacio de trabajo, incluyendo la consulta SQL, la identidad del propietario de la alerta y contenido de notificaciones personalizadas. Proteger el punto final receptor y limitar el acceso a las cargas útiles almacenadas. Para opciones de red y autenticación de webhook, consulte Gestionar destinos de notificación.