Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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';