Referência das tabelas do sistema de alerta
Visualização
Esta tabela do sistema está em pré-lançamento público.
Esta página inclui informações sobre as tabelas do sistema de alerta, incluindo um esboço do esquema de cada tabela. Use estas tabelas para consultar seus alertas do workspace e seu histórico de avaliação diretamente em SQL, para que você possa auditar definições de alerta, analisar tendências de avaliação e monitorar cargas de trabalho de alerta em escala.
O esquema system.alert contém duas tabelas:
system.alert.alerts: A configuração de cada alerta, incluindo sua definição, programação, limites de avaliação, assinantes e Timestamp de ciclo de vida.system.alert.alert_evaluation_history: Uma linha por avaliação de alerta, capturando o estado avaliado, valores de resultado, status de entrega da notificação e detalhes do erro.
Requisitos
Por default, apenas usuários com as funções de administrador da account e administrador do metastore têm acesso às tabelas do sistema de alerta. Para compartilhar os dados de uma tabela com um usuário ou grupo, o Databricks recomenda a criação de uma view dinâmica para cada usuário ou grupo. Consulte Criar uma view dinâmica.
Esquema da tabela de configuração de alerta
A tabela system.alert.alerts é uma tabela de dimensões que muda lentamente. Cada linha captura a configuração de um alerta em um determinado momento, portanto, um único alerta possui várias linhas quando sua configuração é alterada.
Caminho da tabela : esta tabela do sistema está localizada em system.alert.alerts.
A tabela system.alert.alerts usa o seguinte esquema:
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | O ID da account. |
|
| string | A ID do workspace onde o alerta está definido. |
|
| string | O ID do alerta. |
|
| string | O nome de exibição do alerta. |
|
| string | O nome de usuário do proprietário do alerta. Defina como |
|
| struct | Uma struct que representa o recurso de compute anexado ao alerta. O valor |
|
| string | O ID do usuário ou da Databricks Service Principal cujas credenciais são usadas para executar o alerta. |
|
| struct | Uma estrutura que representa a programação do alerta, incluindo seu status de pausa, cronograma cron e fuso horário. |
|
| struct | Um struct que representa a coluna de origem do resultado da query usada para avaliar o alerta, incluindo a agregação aplicada a ele. |
|
| string | O operador usado para comparar o valor de origem com o limite durante a avaliação. Por exemplo: |
|
| struct | Uma struct que representa o limite com o qual o valor de origem é comparado. O limite é um valor estático ou outra coluna. |
|
| string | O estado que o alerta reporta quando a query retorna um resultado vazio. Os valores possíveis são |
|
| boolean | Se deve notificar os assinantes quando o alerta retornar ao estado |
|
| int | O número de segundos que o Trigger aguarda após ser Triggered antes que possa ser Trigger novamente. Se |
|
| matriz | Uma matriz dos assinantes que recebem a notificação de alerta. Cada assinante é identificado por um email de usuário ou um ID de destino de notificação. |
|
| carimbo de data/hora | O horário em que a configuração foi alterada pela última vez. As informações de fuso horário são registradas no final do valor com |
|
| carimbo de data/hora | O horário em que o alerta foi criado. As informações de fuso horário são registradas no final do valor com |
|
| carimbo de data/hora | O horário em que o alerta foi excluído permanentemente. Alertas movidos para a Lixeira não são registrados. As informações de fuso horário são registradas no final do valor com |
|
Esquema da tabela de histórico de avaliação de alerta
A tabela system.alert.alert_evaluation_history registra uma linha para cada avaliação de alerta, capturando o estado avaliado e as estatísticas relacionadas.
Caminho da tabela : esta tabela do sistema está localizada em system.alert.alert_evaluation_history.
A tabela system.alert.alert_evaluation_history usa o seguinte esquema:
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | O ID da account. |
|
| string | A ID do workspace onde o alerta está definido. |
|
| string | O ID do alerta avaliado. Joins para |
|
| string | O ID do job que executou o alerta. Joins para |
|
| string | A key de referência para a tarefa dentro do job. Joins para |
|
| string | O ID da execução de avaliação do alerta. |
|
| string | O estado avaliado do alerta. Os valores possíveis são |
|
| struct | Uma estrutura que representa o valor da fonte de dados produzido pela avaliação. |
|
| struct | Uma struct que representa o valor de limite da avaliação ou o valor estático definido na configuração do alerta. |
|
| string | O código de erro se a avaliação falhar com um erro. |
|
| string | A mensagem de erro visível ao usuário caso a avaliação tenha falhado com um erro. |
|
| matriz | Uma matriz dos assinantes que foram notificados com sucesso. Cada assinante é identificado por um email de usuário ou um ID de destino de notificação. |
|
| matriz | Uma matriz dos assinantes cujas notificações falharam ao serem enviadas. Cada assinante é identificado por um email de usuário ou um ID de destino de notificação. |
|
| carimbo de data/hora | O horário em que a avaliação começou. As informações de fuso horário são registradas no final do valor com |
|
| carimbo de data/hora | A hora em que a avaliação terminou. As informações de fuso horário são registradas no final do valor com |
|
Exemplos de consultas
As seguintes queries de exemplo mostram maneiras comuns de analisar a configuração de alerta e a história de avaliação. Cada query usa marcadores de parâmetro nomeados para os IDs de alerta e Workspace, portanto, você será solicitado a fornecer os valores ao executar a query.
Encontrar a avaliação mais recente de um alerta
Esta query retorna a configuração mais recente de um alerta específico juntamente com sua avaliação mais recente.
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;
Encontre quais alertas foram mais Trigger nos últimos sete dias
Esta query conta quantas vezes cada alerta foi Trigger em um Workspace nos últimos sete dias.
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;
Acompanhe como o estado de um alerta mudou ao longo do tempo
Esta query resume a contagem diária de cada estado avaliado para um alerta específico nos últimos 30 dias. Use-o para criar um dashboard que monitora a confiabilidade dos 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;
Listar alertas ativos em um workspace
Esta query retorna a configuração mais recente de cada alerta que não foi excluído e não está em pausa em um workspace.
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';