Pular para o conteúdo principal

Referência das tabelas do sistema de alerta

info

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

account_id

string

O ID da account.

23e22ba4-87b9-4cc2
-9770-d10b894b7118

workspace_id

string

A ID do workspace onde o alerta está definido.

1234567890123456

alert_id

string

O ID do alerta.

2762099691916865

display_name

string

O nome de exibição do alerta.

Test Alert

owned_by

string

O nome de usuário do proprietário do alerta. Defina como Unavailable se o usuário tiver sido excluído.

example@databricks.com

compute

struct

Uma struct que representa o recurso de compute anexado ao alerta. O valor type é WAREHOUSE ou SERVERLESS_COMPUTE.

{
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}

run_as

string

O ID do usuário ou da Databricks Service Principal 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, cronograma cron e fuso horário.

{
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}

evaluation_source

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.

{
aggregation: SUM,
display: x,
name: x
}

evaluation_comparison_operator

string

O operador usado para comparar o valor de origem com o limite durante a avaliação. Por exemplo: GREATER_THAN, LESS_THAN e EQUAL.

LESS_THAN

evaluation_threshold

struct

Uma struct que representa o limite com o qual o valor de origem é comparado. O limite é um valor estático ou outra coluna.

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

string

O estado que o alerta reporta quando a query 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 estado OK.

true

retrigger_seconds

int

O número de segundos que o Trigger aguarda após ser Triggered antes que possa ser Trigger novamente. Se 0, o alerta não será Trigger novamente.

0

subscriptions

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.

[
{
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 de fuso horário são registradas no final do valor com +00:00 representando 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 de fuso horário são registradas no final do valor com +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

delete_time

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 +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

O ID da account.

23e22ba4-87b9-4cc2
-9770-d10b894b7118

workspace_id

string

A ID do workspace onde o alerta está definido.

1234567890123456

alert_id

string

O ID do alerta.

2762099691916865

display_name

string

O nome de exibição do alerta.

Test Alert

owned_by

string

O nome de usuário do proprietário do alerta. Defina como Unavailable se o usuário tiver sido excluído.

example@databricks.com

compute

struct

Uma struct que representa o recurso de compute anexado ao alerta. O valor type é WAREHOUSE ou SERVERLESS_COMPUTE.

{
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}

run_as

string

O ID do usuário ou da Databricks Service Principal 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, cronograma cron e fuso horário.

{
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}

evaluation_source

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.

{
aggregation: SUM,
display: x,
name: x
}

evaluation_comparison_operator

string

O operador usado para comparar o valor de origem com o limite durante a avaliação. Por exemplo: GREATER_THAN, LESS_THAN e EQUAL.

LESS_THAN

evaluation_threshold

struct

Uma struct que representa o limite com o qual o valor de origem é comparado. O limite é um valor estático ou outra coluna.

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

string

O estado que o alerta reporta quando a query 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 estado OK.

true

retrigger_seconds

int

O número de segundos que o Trigger aguarda após ser Triggered antes que possa ser Trigger novamente. Se 0, o alerta não será Trigger novamente.

0

subscriptions

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.

[
{
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 de fuso horário são registradas no final do valor com +00:00 representando 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 de fuso horário são registradas no final do valor com +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

delete_time

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 +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

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

account_id

string

O ID da account.

23e22ba4-87b9-4cc2
-9770-d10b894b7118

workspace_id

string

A ID do workspace onde o alerta está definido.

1234567890123456

alert_id

string

O ID do alerta avaliado. Joins para alert_id em system.alert.alerts.

2762099691916865

job_id

string

O ID do job que executou o alerta. Joins para job_id em system.lakeflow.jobs. NULL quando o alerta é executado em sua própria programação em vez de como parte de um job. Use um LEFT JOIN ao realizar uma query em system.lakeflow.jobs.

906851285941474

task_key

string

A key de referência para a tarefa dentro do job. Joins para task_key em system.lakeflow.job_tasks. NULL quando o alerta é executado em sua própria programação em vez de como parte de um job. Use um LEFT JOIN ao realizar uma query em system.lakeflow.job_tasks.

evaluate_alert

alert_run_id

string

O ID da execução de avaliação do alerta.

4104302562320643

evaluated_state

string

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 da fonte de dados produzido pela avaliação.

{
double_value: 1.25
}

evaluated_threshold_result

struct

Uma struct que representa o valor de limite da avaliação ou o valor estático definido na configuração do alerta.

{
double_value: 1.25
}

error_code

string

O código de erro se a avaliação falhar com um erro.

INTERNAL_ERROR

error_message

string

A mensagem de erro visível ao usuário caso a avaliação tenha falhado com um erro.

Query execution failed

notified_subscriptions

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.

[
{
user_email: example@databricks.com,
destination_id: null
}
]

failed_subscriptions

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.

[
{
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 de fuso horário são registradas no final do valor com +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

end_time

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 +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

O ID da account.

23e22ba4-87b9-4cc2
-9770-d10b894b7118

workspace_id

string

A ID do workspace onde o alerta está definido.

1234567890123456

alert_id

string

O ID do alerta avaliado. Joins para alert_id em system.alert.alerts.

2762099691916865

job_id

string

O ID do job que executou o alerta. Joins para job_id em system.lakeflow.jobs. NULL quando o alerta é executado em sua própria programação em vez de como parte de um job. Use um LEFT JOIN ao realizar uma query em system.lakeflow.jobs.

906851285941474

task_key

string

A key de referência para a tarefa dentro do job. Joins para task_key em system.lakeflow.job_tasks. NULL quando o alerta é executado em sua própria programação em vez de como parte de um job. Use um LEFT JOIN ao realizar uma query em system.lakeflow.job_tasks.

evaluate_alert

alert_run_id

string

O ID da execução de avaliação do alerta.

4104302562320643

evaluated_state

string

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 da fonte de dados produzido pela avaliação.

{
double_value: 1.25
}

evaluated_threshold_result

struct

Uma struct que representa o valor de limite da avaliação ou o valor estático definido na configuração do alerta.

{
double_value: 1.25
}

error_code

string

O código de erro se a avaliação falhar com um erro.

INTERNAL_ERROR

error_message

string

A mensagem de erro visível ao usuário caso a avaliação tenha falhado com um erro.

Query execution failed

notified_subscriptions

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.

[
{
user_email: example@databricks.com,
destination_id: null
}
]

failed_subscriptions

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.

[
{
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 de fuso horário são registradas no final do valor com +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

end_time

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 +00:00 representando UTC.

2023-01-01T01:01:01.123+00:00

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.

SQL
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.

SQL
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.

SQL
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.

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