Referencia de tablas del sistema de alertas

Importante

Esta tabla del sistema está en versión preliminar pública.

Esta página incluye información sobre las tablas del sistema de alertas, incluyendo un esquema del esquema de cada tabla. Utiliza estas tablas para consultar las alertas de tu espacio de trabajo y su historial de evaluación directamente en SQL, de modo que puedas auditar definiciones de alertas, analizar tendencias de evaluación y monitorizar cargas de trabajo de alertas a gran escala.

El system.alert esquema contiene dos tablas:

  • system.alert.alerts: La configuración de cada alerta, incluyendo su definición, calendario, umbrales de evaluación, suscriptores y marcas temporales del ciclo de vida.
  • system.alert.alert_evaluation_history: Una fila por evaluación de alerta, capturando el estado evaluado, los valores de los resultados, el estado de entrega de notificaciones y los detalles del error.

Requirements

Por defecto, solo los usuarios con los roles de administrador de cuenta y administrador de metastore tienen acceso a las tablas del sistema de alertas. Para compartir los datos de una tabla con un usuario o grupo, Databricks recomienda crear una vista dinámica para cada usuario o grupo. Consulte Creación de una vista dinámica.

Esquema de la tabla de configuración de alertas

La system.alert.alerts tabla es una tabla de dimensiones que cambia lentamente. Cada fila captura la configuración de una alerta en un momento dado, por lo que una sola alerta tiene varias filas cuando su configuración cambia.

Ruta de la tabla: esta tabla del sistema se encuentra en system.alert.alerts.

La system.alert.alerts tabla usa el esquema siguiente:

Nombre de la columna Tipo de dato Descripción Ejemplo
account_id string Id. de la cuenta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string El ID del espacio de trabajo donde se define la alerta. 1234567890123456
alert_id string Identificador de la alerta. 2762099691916865
display_name string Nombre para mostrar de la alerta. Test Alert
owned_by string El nombre de usuario del propietario de la alerta. Configura en Unavailable si el usuario ha sido eliminado. example@databricks.com
compute estructura Una estructura que representa el recurso de cómputo asociado a la alerta. El type valor es o bien WAREHOUSE o SERVERLESS_COMPUTEbien . {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as string El ID del usuario o principal del servicio cuyas credenciales se utilizan para ejecutar la alerta. 2967555311742259
schedule estructura Una estructura que representa el horario de la alerta, incluyendo su estado de pausa, horario cron y zona horaria. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source estructura Una estructura que representa la columna fuente del resultado de la consulta utilizada para evaluar la alerta, incluyendo la agregación aplicada a ella. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator string El operador solía comparar el valor fuente con el umbral durante la evaluación. Por ejemplo, GREATER_THAN, LESS_THAN y EQUAL. LESS_THAN
evaluation_threshold estructura Una estructura que representa el umbral con el que se compara el valor fuente. El umbral es o bien un valor estático o bien otra columna. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state string El estado que la alerta informa cuando la consulta devuelve un resultado vacío. Los valores posibles son OK, TRIGGERED y ERROR. OK
notify_on_ok booleano Si notificar a los suscriptores cuando la alerta regrese al OK estado. true
retrigger_seconds int El número de segundos que la alerta espera después de activarse antes de poder activarse de nuevo. Si 0, la alerta no vuelve a activarse. 0
subscriptions array Un conjunto de suscriptores que reciben la notificación de alerta. Cada suscriptor es identificado por un correo electrónico de usuario o un ID de destino de notificación. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time timestamp La última vez que cambió la configuración. La información de la zona horaria se registra al final del valor representando +00:00 el UTC. 2023-01-01T01:01:01.123+00:00
create_time timestamp La hora en que se creó la alerta. La información de la zona horaria se registra al final del valor representando +00:00 el UTC. 2023-01-01T01:01:01.123+00:00
delete_time timestamp La hora en que la alerta fue eliminada permanentemente. Las alertas trasladadas a la papelera no se registran. La información de la zona horaria se registra al final del valor representando +00:00 el UTC. 2023-01-01T01:01:01.123+00:00

Esquema de la tabla de historial de evaluación de alertas

La system.alert.alert_evaluation_history tabla registra una fila para cada evaluación de alerta, capturando el estado evaluado y las estadísticas relacionadas.

Ruta de la tabla: esta tabla del sistema se encuentra en system.alert.alert_evaluation_history.

La system.alert.alert_evaluation_history tabla usa el esquema siguiente:

Nombre de la columna Tipo de dato Descripción Ejemplo
account_id string Id. de la cuenta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string El ID del espacio de trabajo donde se define la alerta. 1234567890123456
alert_id string El ID de la alerta evaluada. Se une a alert_id en system.alert.alerts. 2762099691916865
job_id string El ID del trabajo que ejecutó la alerta. Se une a job_id en system.lakeflow.jobs. NULL cuando la alerta se ejecuta en su propio horario en lugar de como parte de un trabajo. Usa un LEFT JOIN cuando consultas contra system.lakeflow.jobs. 906851285941474
task_key string La clave de referencia para la tarea dentro del puesto. Se une a task_key en system.lakeflow.job_tasks. NULL cuando la alerta se ejecuta en su propio horario en lugar de como parte de un trabajo. Usa un LEFT JOIN cuando consultas contra system.lakeflow.job_tasks. evaluate_alert
alert_run_id string El ID de la evaluación de alerta ejecuta. 4104302562320643
evaluated_state string El estado evaluado de la alerta. Los valores posibles son OK, TRIGGERED y ERROR. TRIGGERED
evaluated_source_result estructura Una estructura que representa el valor fuente producido por la evaluación. {
double_value: 1.25
}
evaluated_threshold_result estructura Una estructura que representa el valor umbral de la evaluación, o el valor estático establecido en la configuración de alerta. {
double_value: 1.25
}
error_code string El código de error si la evaluación falló con un error. INTERNAL_ERROR
error_message string El mensaje de error visible para el usuario si la evaluación falló con un error. Query execution failed
notified_subscriptions array Una serie de suscriptores que fueron notificados con éxito. Cada suscriptor es identificado por un correo electrónico de usuario o un ID de destino de notificación. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions array Una serie de suscriptores cuyas notificaciones no se enviaron. Cada suscriptor es identificado por un correo electrónico de usuario o un ID de destino de notificación. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time timestamp La hora en que empezó la evaluación. La información de la zona horaria se registra al final del valor representando +00:00 el UTC. 2023-01-01T01:01:01.123+00:00
end_time timestamp La hora en que terminó la evaluación. La información de la zona horaria se registra al final del valor representando +00:00 el UTC. 2023-01-01T01:01:01.123+00:00

Consultas de ejemplo

Las siguientes consultas de ejemplo muestran formas comunes de analizar el historial de configuración y evaluación de alertas. Cada consulta utiliza marcadores de parámetros nombrados para los IDs de alerta y espacio de trabajo, así que se te piden los valores cuando ejecutas la consulta.

Encuentra la evaluación más reciente para una alerta

Esta consulta devuelve la configuración más reciente de una alerta específica junto con su evaluación más reciente.

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;

Averigua qué alertas se han activado más en los últimos siete días

Esta consulta cuenta cuántas veces se ha activado cada alerta en un espacio de trabajo durante los últimos siete días.

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;

Haz un seguimiento de cómo cambió el estado de una alerta a lo largo del tiempo

Esta consulta resume el recuento diario de cada estado evaluado para una alerta específica durante los últimos 30 días. Úsalo para crear un panel de control que supervise la fiabilidad de las alertas.

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;

Lista alertas activas en un espacio de trabajo

Esta consulta devuelve la última configuración de cada alerta que no se elimina ni se pausa en un espacio de trabajo.

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';