Referência das tabelas do sistema de alertas

Importante

Esta tabela do sistema está em Public Preview.

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

O system.alert esquema contém duas tabelas:

  • system.alert.alerts: A configuração de cada alerta, incluindo a sua definição, agenda, limiares de avaliação, subscritores 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, estado de entrega das notificações e detalhes do erro.

Requirements

Por defeito, apenas os utilizadores com os papéis de administrador de conta e de administrador da metastore têm acesso às tabelas do sistema de alertas. Para partilhar os dados de uma tabela com um utilizador ou grupo, a Databricks recomenda criar uma vista dinâmica para cada utilizador ou grupo. Consulte Criar uma vista 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 capta a configuração de um alerta num determinado momento, por isso um único alerta tem várias linhas quando a sua configuração muda.

Caminho 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 (de caracteres) O ID da conta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id cadeia (de caracteres) O ID do espaço de trabalho onde o alerta está definido. 1234567890123456
alert_id cadeia (de caracteres) A ID do alerta. 2762099691916865
display_name cadeia (de caracteres) O nome a apresentar do alerta. Test Alert
owned_by cadeia (de caracteres) O nome de utilizador do proprietário do alerta. Definido para Unavailable se o utilizador tiver sido eliminado. example@databricks.com
compute estrutura Uma estrutura que representa o recurso de computação associado ao alerta. O type valor é ou WAREHOUSE ou SERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as cadeia (de caracteres) O ID do utilizador ou principal do serviço cujas credenciais são usadas para executar o alerta. 2967555311742259
schedule estrutura Uma estrutura que representa o horário do alerta, incluindo o seu estado de pausa, cron schedule e fuso horário. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source estrutura 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 (de caracteres) O operador era usado para comparar o valor da fonte com o limiar durante a avaliação. Por exemplo: GREATER_THAN, LESS_THANe EQUAL. LESS_THAN
evaluation_threshold estrutura Uma estrutura que representa o limiar com o qual o valor de origem é comparado. O limiar é ou um valor estático ou outra coluna. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state cadeia (de caracteres) O estado que o alerta reporta quando a consulta retorna um resultado vazio. Os valores possíveis são OK, TRIGGEREDe ERROR. OK
notify_on_ok boolean Se devem notificar os subscritores quando o alerta regressar ao OK estado. true
retrigger_seconds int O número de segundos que o alerta espera após ser acionado antes de poder ser ativado novamente. Se 0, o alerta não volta a disparar. 0
subscriptions matriz Um conjunto dos subscritores que recebem a notificação de alerta. Cada assinante é identificado por um email de utilizador ou por um ID de destino de notificação. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time carimbo de data/hora A hora em que a configuração foi alterada pela última vez. A informação do fuso horário é registada no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
create_time carimbo de data/hora A hora em que o alerta foi criado. A informação do fuso horário é registada no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
delete_time carimbo de data/hora A hora em que o alerta foi apagado permanentemente. Os alertas movidos para o lixo não são registados. A informação do fuso horário é registada 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 regista uma linha para cada avaliação de alerta, capturando o estado avaliado e estatísticas relacionadas.

Caminho 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 (de caracteres) O ID da conta. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id cadeia (de caracteres) O ID do espaço de trabalho onde o alerta está definido. 1234567890123456
alert_id cadeia (de caracteres) A identificação do alerta avaliado. Junta-se a alert_id em system.alert.alerts. 2762099691916865
job_id cadeia (de caracteres) O ID do trabalho que executou o alerta. Junta-se a job_id em system.lakeflow.jobs. NULL quando o alerta é executado no seu próprio horário em vez de como parte de um trabalho. Use um LEFT JOIN quando fizer uma consulta contra system.lakeflow.jobs. 906851285941474
task_key cadeia (de caracteres) 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 é executado no seu próprio horário em vez de como parte de um trabalho. Use um LEFT JOIN quando fizer uma consulta contra system.lakeflow.job_tasks. evaluate_alert
alert_run_id cadeia (de caracteres) O ID da execução de avaliação do alerta. 4104302562320643
evaluated_state cadeia (de caracteres) O estado avaliado do alerta. Os valores possíveis são OK, TRIGGEREDe ERROR. TRIGGERED
evaluated_source_result estrutura Uma estrutura que representa o valor de origem produzido pela avaliação. {
double_value: 1.25
}
evaluated_threshold_result estrutura 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 (de caracteres) O código de erro caso a avaliação tenha falhado com um erro. INTERNAL_ERROR
error_message cadeia (de caracteres) A mensagem de erro visível pelo utilizador se a avaliação falhou com um erro. Query execution failed
notified_subscriptions matriz Um conjunto dos assinantes que foram notificados com sucesso. Cada assinante é identificado por um email de utilizador 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 email de utilizador ou por um ID de destino de notificação. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time carimbo de data/hora A hora em que a avaliação começou. A informação do fuso horário é registada no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00
end_time carimbo de data/hora A hora em que a avaliação terminou. A informação do fuso horário é registada no final do valor, representando +00:00 o UTC. 2023-01-01T01:01:01.123+00:00

Exemplos de consultas

As seguintes consultas de exemplo 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 espaço de trabalho, por isso é solicitado os valores quando executa a consulta.

Encontre a avaliação mais recente para um alerta

Esta consulta devolve a configuração mais recente de um alerta específico juntamente com a 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;

Descubra quais os alertas que mais foram acionados nos últimos sete dias

Esta consulta conta quantas vezes cada alerta foi ativado num 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-o para construir um painel que monitorize a fiabilidade 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 num espaço de trabalho

Esta consulta devolve a configuração mais recente de cada alerta que não é eliminada nem pausada num 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';