Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта системная таблица находится в общедоступной предварительной версии.
На этой странице представлена информация о таблицах системы оповещений, включая план схемы каждой таблицы. Используйте эти таблицы для запроса оповещений о вашем рабочем пространстве и их истории оценки непосредственно в SQL, чтобы вы могли проводить аудит определений оповещений, анализировать тенденции оценки и масштабно отслеживать нагрузку по оповещениям.
Схема содержит две таблицы:system.alert
-
system.alert.alerts: Конфигурация каждого оповещения, включая его определение, расписание, пороги оценки, подписчиков и временные метки жизненного цикла. -
system.alert.alert_evaluation_history: Одна строка на каждую оценку оповещения, фиксирующая оцениваемое состояние, значения результатов, статус доставки уведомлений и детали ошибок.
Requirements
По умолчанию доступ к таблицам системы оповещений имеют только пользователи с ролями администратора аккаунта и администратора метамагазина. Для обмена данными таблицы с пользователем или группой Databricks рекомендует создать динамический вид для каждого пользователя или группы. См. раздел Создание динамического представления.
Схема конфигурационной таблицы оповещений
Таблица system.alert.alerts представляет собой медленно меняющуюся таблицу размерности. Каждая строка фиксирует конфигурацию оповещения в определённый момент времени, поэтому один сигнал имеет несколько строк при изменении конфигурации.
Путь к таблице: эта системная таблица расположена по адресу system.alert.alerts.
В таблице используется следующая system.alert.alerts схема:
| Название столбца | Тип данных | Description | Пример |
|---|---|---|---|
account_id |
струна | Идентификатор учетной записи. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
струна | ID рабочего пространства, где определён оповещение. | 1234567890123456 |
alert_id |
струна | Идентификатор оповещения. | 2762099691916865 |
display_name |
струна | Отображаемое имя оповещения. | Test Alert |
owned_by |
струна | Имя пользователя владельца оповещения. Установите на Unavailable «если пользователь был удалён». |
example@databricks.com |
compute |
struct | Структура, представляющая вычислительный ресурс, привязанный к оповещению. Значение type — либо WAREHOUSE , либо SERVERLESS_COMPUTE. |
{type: WAREHOUSE,cluster_id: NULL,warehouse_id: 802f6d5283291c0d} |
run_as |
струна | ID пользователя или руководителя сервиса, чьи учетные данные используются для запуска оповещения. | 2967555311742259 |
schedule |
struct | Структура, представляющая расписание оповещения, включая статус паузы, расписание cron и часовой пояс. | {pause_status: UNPAUSED,quartz_cron_schedule: 0 0 10 * * ?,timezone_id: UTC} |
evaluation_source |
struct | Структура, представляющая исходный столбец из результата запроса, используемого для оценки оповещения, включая приложенную к нему агрегацию. | {aggregation: SUM,display: x,name: x} |
evaluation_comparison_operator |
струна | Оператор сравнял исходное значение с порогом во время оценки. Например: GREATER_THAN, LESS_THANи EQUAL. |
LESS_THAN |
evaluation_threshold |
struct | Структура, представляющая порог, с которым сравнивается исходное значение. Порог — это либо статическое значение, либо другой столбец. | {value: { double_value: 1.25}} |
evaluation_empty_result_state |
струна | Состояние, которое сообщает оповещение, когда запрос возвращает пустой результат. Возможные значения: OK, TRIGGEREDи ERROR. |
OK |
notify_on_ok |
boolean | Следует ли уведомлять подписчиков, когда оповещение возвращается в OK штат. |
true |
retrigger_seconds |
int | Сколько секунд предупреждение ждёт после срабатывания, прежде чем сможет сработать снова. Если 0, предупреждение не срабатывает снова. |
0 |
subscriptions |
массив | Массив абонентов, получающих уведомление о предупреждении. Каждый абонент идентифицируется по электронной почте пользователя или идентификатору назначения уведомления. | [{ user_email: example@databricks.com, destination_id: null}] |
change_time |
timestamp | Время последней смены конфигурации. Информация о часовом поясе записывается в конце значения с +00:00 представлением UTC. |
2023-01-01T01:01:01.123+00:00 |
create_time |
timestamp | Время создания оповещения. Информация о часовом поясе записывается в конце значения с +00:00 представлением UTC. |
2023-01-01T01:01:01.123+00:00 |
delete_time |
timestamp | Время, когда предупреждение было навсегда удалено. Оповещения, перемещённые в мусор, не фиксируются. Информация о часовом поясе записывается в конце значения с +00:00 представлением UTC. |
2023-01-01T01:01:01.123+00:00 |
Схема таблицы истории оценки оповещений
В таблице фиксируется system.alert.alert_evaluation_history одна строка для каждой оценки оповещений, фиксируя оцениваемое состояние и связанные статистики.
Путь к таблице: эта системная таблица расположена по адресу system.alert.alert_evaluation_history.
В таблице используется следующая system.alert.alert_evaluation_history схема:
| Название столбца | Тип данных | Description | Пример |
|---|---|---|---|
account_id |
струна | Идентификатор учетной записи. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
струна | ID рабочего пространства, где определён оповещение. | 1234567890123456 |
alert_id |
струна | Идентификатор оцененного сигнала тревоги. Соединяется с alert_id .system.alert.alerts |
2762099691916865 |
job_id |
струна | ID работы, которая запускала оповещение. Соединяется с job_id .system.lakeflow.jobs
NULL когда оповещение работает по собственному расписанию, а не как часть работы. Используйте a LEFT JOIN при запросе против system.lakeflow.jobs. |
906851285941474 |
task_key |
струна | Эталонный ключ для задачи в работе. Соединяется с task_key .system.lakeflow.job_tasks
NULL когда оповещение работает по собственному расписанию, а не как часть работы. Используйте a LEFT JOIN при запросе против system.lakeflow.job_tasks. |
evaluate_alert |
alert_run_id |
струна | ID оценки тревоги запускается. | 4104302562320643 |
evaluated_state |
струна | Оцененное состояние тревоги. Возможные значения: OK, TRIGGEREDи ERROR. |
TRIGGERED |
evaluated_source_result |
struct | Структура, представляющая исходное значение, полученное при оценке. | {double_value: 1.25} |
evaluated_threshold_result |
struct | Структура, представляющая пороговое значение из оценки или статическое значение, установленное в конфигурации оповещения. | {double_value: 1.25} |
error_code |
струна | Код ошибки, если оценка провалилась из-за ошибки. | INTERNAL_ERROR |
error_message |
струна | Сообщение об ошибке, видимое пользователем, если оценка не прошла с ошибкой. | Query execution failed |
notified_subscriptions |
массив | Массив подписчиков, которые были успешно уведомлены. Каждый абонент идентифицируется по электронной почте пользователя или идентификатору назначения уведомления. | [{ user_email: example@databricks.com, destination_id: null}] |
failed_subscriptions |
массив | Массив подписчиков, чьи уведомления не были отправлены. Каждый абонент идентифицируется по электронной почте пользователя или идентификатору назначения уведомления. | [{ user_email: example@databricks.com, destination_id: null}] |
start_time |
timestamp | Время, когда началась оценка. Информация о часовом поясе записывается в конце значения с +00:00 представлением UTC. |
2023-01-01T01:01:01.123+00:00 |
end_time |
timestamp | Время окончания оценки. Информация о часовом поясе записывается в конце значения с +00:00 представлением UTC. |
2023-01-01T01:01:01.123+00:00 |
Примеры запросов
Следующие примеры запросов показывают распространённые способы анализа конфигурации и истории оценки оповещений. Каждый запрос использует именованные маркеры параметров для идентификаторов оповещений и рабочего пространства, поэтому при запуске запроса вас запрашивают значения.
Найдите самую свежую оценку для предупреждения
Этот запрос возвращает последнюю конфигурацию конкретного оповещения вместе с его последней оценкой.
SELECT
c.alert_id,
c.display_name,
c.compute,
c.schedule.quartz_cron_schedule AS schedule,
c.evaluation_comparison_operator AS operator,
c.evaluation_threshold.value.double_value AS threshold,
c.change_time AS config_last_updated,
e.evaluated_state,
e.start_time AS evaluation_time,
e.end_time,
TIMESTAMPDIFF(SECOND, e.start_time, e.end_time) AS eval_duration_seconds
FROM (
SELECT *
FROM system.alert.alerts
WHERE alert_id = :your_alert_id
AND delete_time IS NULL
ORDER BY change_time DESC
LIMIT 1
) c
LEFT JOIN (
SELECT *
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
ORDER BY start_time DESC
LIMIT 1
) e ON TRUE;
Узнайте, какие оповещения сработали чаще всего за последние семь дней
Этот запрос подсчитывает, сколько раз каждое оповещение срабатывало в рабочем пространстве за последние семь дней.
SELECT
alert_id,
COUNT(*) AS trigger_count_7d
FROM system.alert.alert_evaluation_history
WHERE workspace_id = :your_workspace_id
AND start_time >= CURRENT_DATE() - INTERVAL 7 DAY
AND evaluated_state = 'TRIGGERED'
GROUP BY alert_id
ORDER BY trigger_count_7d DESC;
Отслеживайте, как менялось состояние оповещения со временем
Этот запрос суммирует ежедневный счёт каждого оцениваемого состояния для конкретного оповещения за последние 30 дней. Используйте её для создания панели управления мониторингом надёжности оповещений.
SELECT
DATE_TRUNC('day', start_time) AS eval_day,
COUNT_IF(evaluated_state = 'OK') AS ok_count,
COUNT_IF(evaluated_state = 'TRIGGERED') AS triggered_count,
COUNT_IF(evaluated_state = 'ERROR') AS error_count
FROM system.alert.alert_evaluation_history
WHERE alert_id = :your_alert_id
AND start_time >= CURRENT_DATE() - INTERVAL 30 DAY
GROUP BY 1
ORDER BY eval_day ASC;
Список активных оповещений в рабочем пространстве
Этот запрос возвращает последнюю конфигурацию каждого оповещения, которая не удаляется и не приостановлена в рабочем пространстве.
WITH latest AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY alert_id ORDER BY change_time DESC) AS rn
FROM system.alert.alerts
WHERE workspace_id = :your_workspace_id
AND delete_time IS NULL
)
SELECT
alert_id,
display_name,
compute,
schedule.quartz_cron_schedule AS cron_schedule,
schedule.pause_status
FROM latest
WHERE rn = 1
AND schedule.pause_status != 'PAUSED';