Referência das tabelas do sistema de alertas

Importante

Esta tabela do sistema está em Visualização Pública.

Esta página inclui informações sobre as tabelas do sistema de alertas, incluindo um esboço do esquema de cada tabela. Use essas tabelas para consultar seus alertas de espaço de trabalho e seu histórico de avaliação diretamente em SQL, para que você possa auditar definições de alertas, analisar tendências de avaliação e monitorar cargas de trabalho de alertas em escala.

O system.alert esquema contém duas tabelas:

  • system.alert.alerts: A configuração de cada alerta, incluindo sua definição, cronograma, limiares de avaliação, assinantes e carimbos de tempo do ciclo de vida.
  • system.alert.alert_evaluation_history: Uma linha por avaliação de alerta, capturando o estado avaliado, valores dos resultados, status de entrega da notificação e detalhes do erro.

Requirements

Por padrão, apenas usuários com os papéis de administrador de conta e administrador da metastore têm acesso às tabelas do sistema de alertas. Para compartilhar os dados de uma tabela com um usuário ou grupo, o Databricks recomenda criar uma visualização dinâmica para cada usuário ou grupo. Confira Criar uma exibição dinâmica.

Esquema da tabela de configuração de alertas

A system.alert.alerts tabela é uma tabela de dimensões que muda lentamente. Cada linha captura a configuração de um alerta em um momento específico, então um único alerta tem várias linhas quando sua configuração muda.

Localização da tabela: Esta tabela do sistema está localizada em system.alert.alerts.

A system.alert.alerts tabela usa o seguinte esquema:

Nome da Coluna Tipo de dados Description Example
account_id cadeia O ID da conta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id cadeia O ID do espaço de trabalho onde o alerta está definido. 1234567890123456
alert_id cadeia A ID do alerta. 2762099691916865
display_name cadeia O nome a apresentar do alerta. Test Alert
owned_by cadeia O nome de usuário do dono do alerta. Defina para Unavailable se o usuário tiver sido excluído. example@databricks.com
compute struct Uma estrutura que representa o recurso de computação associado ao alerta. O type valor é ou WAREHOUSE .SERVERLESS_COMPUTE {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as cadeia O ID do usuário ou principal do serviço cujas credenciais são usadas para executar o alerta. 2967555311742259
schedule struct Uma estrutura que representa a programação do alerta, incluindo seu status de pausa, cron schedule e fuso horário. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct Uma estrutura que representa a coluna de origem do resultado da consulta usada para avaliar o alerta, incluindo a agregação aplicada a ele. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator cadeia O operador era usado para comparar o valor da fonte com o limiar durante a avaliação. Por exemplo: GREATER_THAN, LESS_THAN e EQUAL. LESS_THAN
evaluation_threshold struct Uma estrutura que representa o limiar contra o qual o valor fonte é comparado. O limiar é ou um valor estático ou outra coluna. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state cadeia O estado que o alerta reporta quando a consulta retorna um resultado vazio. Os valores possíveis são OK, TRIGGERED e ERROR. OK
notify_on_ok boolean Se deve notificar os assinantes quando o alerta retornar ao OK estado. true
retrigger_seconds int O número de segundos que o alerta espera após ser acionado antes de poder disparar novamente. Se 0, o alerta não é disparado novamente. 0
subscriptions matriz Uma variedade dos assinantes que recebem a notificação de alerta. Cada assinante é identificado por um e-mail de usuário ou por um ID de destino de notificação. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time carimbo de data/hora O horário em que a configuração foi alterada pela última vez. As informações sobre fusos horários são registradas no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
create_time carimbo de data/hora O horário em que o alerta foi criado. As informações sobre fusos horários são registradas no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
delete_time carimbo de data/hora O momento em que o alerta foi deletado permanentemente. Alertas movidos para o lixo não são registrados. As informações sobre fusos horários são registradas no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00

Esquema da tabela de histórico de avaliação de alertas

A system.alert.alert_evaluation_history tabela registra uma linha para cada avaliação de alerta, capturando o estado avaliado e estatísticas relacionadas.

Localização da tabela: Esta tabela do sistema está localizada em system.alert.alert_evaluation_history.

A system.alert.alert_evaluation_history tabela usa o seguinte esquema:

Nome da Coluna Tipo de dados Description Example
account_id cadeia O ID da conta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id cadeia O ID do espaço de trabalho onde o alerta está definido. 1234567890123456
alert_id cadeia O ID do alerta avaliado. Junta-se a alert_id em system.alert.alerts. 2762099691916865
job_id cadeia O ID do trabalho que rodou o alerta. Junta-se a job_id em system.lakeflow.jobs. NULL quando o alerta roda em um cronograma próprio em vez de como parte de um trabalho. Use um LEFT JOIN quando você consultar contra system.lakeflow.jobs. 906851285941474
task_key cadeia A chave de referência para a tarefa dentro do trabalho. Junta-se a task_key em system.lakeflow.job_tasks. NULL quando o alerta roda em um cronograma próprio em vez de como parte de um trabalho. Use um LEFT JOIN quando você consultar contra system.lakeflow.job_tasks. evaluate_alert
alert_run_id cadeia O ID da avaliação do alerta executa. 4104302562320643
evaluated_state cadeia O estado avaliado do alerta. Os valores possíveis são OK, TRIGGERED e ERROR. TRIGGERED
evaluated_source_result struct Uma estrutura que representa o valor fonte produzido pela avaliação. {
double_value: 1.25
}
evaluated_threshold_result struct Uma estrutura que representa o valor limiar da avaliação, ou o valor estático definido na configuração do alerta. {
double_value: 1.25
}
error_code cadeia O código de erro se a avaliação falhasse com um erro. INTERNAL_ERROR
error_message cadeia A mensagem de erro visível ao usuário se a avaliação falhou, com um erro. Query execution failed
notified_subscriptions matriz Uma variedade dos assinantes que foram notificados com sucesso. Cada assinante é identificado por um e-mail de usuário ou por um ID de destino de notificação. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions matriz Uma série de assinantes cujas notificações não foram enviadas. Cada assinante é identificado por um e-mail de usuário ou por um ID de destino de notificação. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time carimbo de data/hora O horário em que a avaliação começou. As informações sobre fusos horários são registradas no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
end_time carimbo de data/hora O horário em que a avaliação terminou. As informações sobre fusos horários são registradas no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00

Exemplos de consultas

As consultas de exemplo a seguir mostram formas comuns de analisar o histórico de configuração e avaliação de alertas. Cada consulta usa marcadores de parâmetros nomeados para os IDs de alerta e workspace, então você é solicitado pelos valores ao executar a consulta.

Encontre a avaliação mais recente para um alerta

Essa consulta retorna a configuração mais recente de um alerta específico junto 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 acionados nos últimos sete dias

Essa consulta conta quantas vezes cada alerta foi acionado em um espaço de trabalho 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 consulta resume a contagem diária de cada estado avaliado para um alerta específico nos últimos 30 dias. Use isso para construir um painel que monitore 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;

Liste alertas ativos em um espaço de trabalho

Essa consulta retorna a configuração mais recente de cada alerta que não é deletada nem pausada em um espaço de trabalho.

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