Полезная нагрузка webhook-уведомления оповещения SQL

Когда SQL-оповещение Databricks меняет состояние, получатель уведомления webhook получает JSON-нагрузку, описывающую оповещение и его оценку. Этот формат передаваемых данных применяется к последней версии SQL-оповещений Databricks. Устаревшие оповещения используют другую полезную нагрузку.

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 Базовый URL Databricks SQL в рабочем пространстве.
alert Object Детали уведомлений и оповещений.
alert.title String Отрисованная тема пользовательского уведомления. Это поле опускается, если уведомление не определяет пользовательскую тему.
alert.description String Сформированное пользовательское тело уведомления. Это поле опускается, если оповещение не определяет пользовательское тело.
alert.alert Object Снимок предупреждения, когда уведомление было отправлено.

Вложенный alert.alert объект может содержать следующие поля:

Field Type Description
id String Идентификатор ресурса оповещения.
name String Имя оповещения.
owner Object ID, имя и адрес электронной почты владельца уведомления. Это поле опускается, если данные владельца недоступны.
created_at Integer Время создания оповещения — в миллисекундах с эпохи Unix.
parent String Имя ресурса папки, содержащей предупреждение.
query_text String SQL-запрос, который оценивается оповещением.
warehouse_id String ID SQL-хранилища, на котором выполняется запрос.
custom_summary String Шаблон темы пользовательского уведомления. Это поле опускается, если пользовательская тема не настроена.
custom_description String Шаблон текста пользовательского уведомления. Это поле опускается, если пользовательское тело не настроено.
custom_template_format String Формат пользовательских шаблонов, таких как HTML или MARKDOWN.
evaluations Массив Настроенные условия оценки и их состояние. Значение state отражает изменение состояния, вызвавшее уведомление.
schedule Object Расписание cron Quartz, часовой пояс и состояние паузы. Это поле опускается, если в оповещении нет расписания.

В зависимости от конфигурации оповещения, вложенный объект может также включать parameters, genie_analysis_enabled, genie_analysis_custom_prompt, и genie_analysis_references.

Каждый объект в массиве evaluations может содержать следующие поля:

Field Type Description
id String Идентификатор условия оценки.
source Object Столбец результата запроса и агрегация, которые оценивает условие.
comparison_operator String Оператор сравнения, например GREATER_THAN, EQUAL, или IS_NULL.
threshold Object Столбец со значением или результатом запроса, с которым сравнивается исходное значение.
empty_result_state String Состояние, которое нужно использовать, когда запрос не возвращает ни одной строки. Это поле опускается, если оповещение не определяет пустое состояние результата.
notification Object Интервал повторного триггера, настройки notify-on-OK и идентификаторы назначения уведомления.
state String Состояние оценки, вызвавшее уведомление: TRIGGERED, OK, или ERROR.
last_evaluated_at Integer Время оценки — в миллисекундах с эпохи Unix.
last_triggered_at Integer Время последнего срабатывания — в миллисекундах с эпохи Unix. Это поле опускается, когда оповещение не сработало.

Обеспечьте безопасность данных webhook

Полезные данные могут содержать чувствительные метаданные рабочего пространства, включая SQL-запрос, личность владельца оповещения и пользовательское содержимое уведомлений. Защитить принимающую конечную точку и ограничить доступ к хранимым данным. Для параметров сети и аутентификации webhook см. Управление пунктами назначения уведомлений.