Aller au contenu principal

Référence des tables système d’alerte

info

Aperçu

Cette table système est en Aperçu public.

Cette page contient des informations sur les tables système d'alerte, y compris un aperçu du schéma de chaque table. Utilisez ces tables pour interroger les alertes de votre workspace et leur historique d'évaluation directement en SQL, afin de pouvoir auditer les définitions d'alerte, analyser les tendances d'évaluation et surveiller les charges de travail d'alerte à grande échelle.

Le schéma system.alert contient deux tables :

  • system.alert.alerts: La configuration de chaque alerte, y compris sa définition, son calendrier, ses threshold d'évaluation, ses abonnés et ses Timestamp de cycle de vie.
  • system.alert.alert_evaluation_history: une ligne par évaluation d’alerte, capturant l’état évalué, les valeurs de résultat, le statut de distribution des notifications et les détails de l’erreur.

Exigences

By default, seuls les utilisateurs disposant à la fois des rôles d'administrateur de compte et d'administrateur de metastore ont accès aux tables système d'alerte. Pour partager les données d'une table avec un utilisateur ou un groupe, Databricks recommande de créer une vue dynamique pour chaque utilisateur ou groupe. Voir Créer une vue dynamique.

Schéma de la table de configuration des alertes

La table system.alert.alerts est une table de dimension à évolution lente. Chaque ligne capture la configuration d'une alerte à un instant T ; ainsi, une seule alerte possède plusieurs lignes lorsque sa configuration change.

Chemin de la table : cette table système est située à l’emplacement system.alert.alerts.

La table system.alert.alerts utilise le schéma suivant :

Nom de la colonne

Type de données

Description

Exemple

account_id

chaîne

L'ID du compte.

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

workspace_id

chaîne

L'ID du Workspace où l'alerte est définie.

1234567890123456

alert_id

chaîne

L'ID de l'alerte.

2762099691916865

display_name

chaîne

Le nom d’affichage de l’alerte.

Test Alert

owned_by

chaîne

Le nom d'utilisateur du propriétaire de l'alerte. Défini sur Unavailable si l'utilisateur a été supprimé.

example@databricks.com

compute

structure

Une structure qui représente la ressource de compute associée à l'alerte. La valeur type est soit WAREHOUSE, soit SERVERLESS_COMPUTE.

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

run_as

chaîne

L’ID de l’utilisateur ou du service principal Databricks dont les identifiants sont utilisés pour exécuter l’alerte.

2967555311742259

schedule

structure

Une structure qui représente le calendrier de l’alerte, y compris son état de suspension, son calendrier cron et son fuseau horaire.

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

evaluation_source

structure

Une structure qui représente la colonne source issue du résultat de la query utilisée pour évaluer l'alerte, y compris l'agrégation qui lui est appliquée.

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

evaluation_comparison_operator

chaîne

L'opérateur utilisé pour comparer la valeur source au threshold pendant l'évaluation. Par exemple : GREATER_THAN, LESS_THAN et EQUAL.

LESS_THAN

evaluation_threshold

structure

Une structure qui représente le threshold auquel la valeur source est comparée. Le threshold est soit une valeur statique, soit une autre colonne.

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

chaîne

L'état rapporté par l'alerte lorsque la query renvoie un résultat vide. Les valeurs possibles sont OK, TRIGGERED et ERROR.

OK

notify_on_ok

booléen

Indique s'il faut notifier les abonnés lorsque l'alerte revient à l'état OK.

true

retrigger_seconds

entier

Nombre de secondes pendant lesquelles l'alerte attend après avoir été Triggered avant de pouvoir se Trigger à nouveau. Si 0, l'alerte ne se Trigger plus.

0

subscriptions

tableau

Un tableau des abonnés qui reçoivent la notification d'alerte. Chaque abonné est identifié par un e-mail d’utilisateur ou un ID de destination de notification.

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

change_time

Horodatage

L'heure à laquelle la configuration a été modifiée pour la dernière fois. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant UTC.

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

create_time

Horodatage

L'heure à laquelle l'alerte a été créée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

delete_time

Horodatage

L’heure à laquelle l’alerte a été définitivement supprimée. Les alertes déplacées dans la corbeille ne sont pas enregistrées. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

Nom de la colonne

Type de données

Description

Exemple

account_id

chaîne

L'ID du compte.

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

workspace_id

chaîne

L'ID du Workspace où l'alerte est définie.

1234567890123456

alert_id

chaîne

L'ID de l'alerte.

2762099691916865

display_name

chaîne

Le nom d’affichage de l’alerte.

Test Alert

owned_by

chaîne

Le nom d'utilisateur du propriétaire de l'alerte. Défini sur Unavailable si l'utilisateur a été supprimé.

example@databricks.com

compute

structure

Une structure qui représente la ressource de compute associée à l'alerte. La valeur type est soit WAREHOUSE, soit SERVERLESS_COMPUTE.

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

run_as

chaîne

L’ID de l’utilisateur ou du service principal Databricks dont les identifiants sont utilisés pour exécuter l’alerte.

2967555311742259

schedule

structure

Une structure qui représente le calendrier de l’alerte, y compris son état de suspension, son calendrier cron et son fuseau horaire.

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

evaluation_source

structure

Une structure qui représente la colonne source issue du résultat de la query utilisée pour évaluer l'alerte, y compris l'agrégation qui lui est appliquée.

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

evaluation_comparison_operator

chaîne

L'opérateur utilisé pour comparer la valeur source au threshold pendant l'évaluation. Par exemple : GREATER_THAN, LESS_THAN et EQUAL.

LESS_THAN

evaluation_threshold

structure

Une structure qui représente le threshold auquel la valeur source est comparée. Le threshold est soit une valeur statique, soit une autre colonne.

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

chaîne

L'état rapporté par l'alerte lorsque la query renvoie un résultat vide. Les valeurs possibles sont OK, TRIGGERED et ERROR.

OK

notify_on_ok

booléen

Indique s'il faut notifier les abonnés lorsque l'alerte revient à l'état OK.

true

retrigger_seconds

entier

Nombre de secondes pendant lesquelles l'alerte attend après avoir été Triggered avant de pouvoir se Trigger à nouveau. Si 0, l'alerte ne se Trigger plus.

0

subscriptions

tableau

Un tableau des abonnés qui reçoivent la notification d'alerte. Chaque abonné est identifié par un e-mail d’utilisateur ou un ID de destination de notification.

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

change_time

Horodatage

L'heure à laquelle la configuration a été modifiée pour la dernière fois. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant UTC.

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

create_time

Horodatage

L'heure à laquelle l'alerte a été créée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

delete_time

Horodatage

L’heure à laquelle l’alerte a été définitivement supprimée. Les alertes déplacées dans la corbeille ne sont pas enregistrées. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

Schéma de la table d’historique d’évaluation des alertes

La table system.alert.alert_evaluation_history enregistre une ligne pour chaque évaluation d’alerte, capturant l’état évalué et les statistiques associées.

Chemin de la table : cette table système est située à l’emplacement system.alert.alert_evaluation_history.

La table system.alert.alert_evaluation_history utilise le schéma suivant :

Nom de la colonne

Type de données

Description

Exemple

account_id

chaîne

L'ID du compte.

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

workspace_id

chaîne

L'ID du Workspace où l'alerte est définie.

1234567890123456

alert_id

chaîne

L'ID de l'alerte évaluée. Jointures vers alert_id dans system.alert.alerts.

2762099691916865

job_id

chaîne

L'ID du Job qui a exécuté l'alerte. Jointures vers job_id dans system.lakeflow.jobs. NULL lorsque l'alerte s'exécute selon son propre calendrier au lieu de faire partie d'un Job. Utilisez un LEFT JOIN lorsque vous effectuez une query sur system.lakeflow.jobs.

906851285941474

task_key

chaîne

La clé de référence de la tâche au sein du job. Jointures vers task_key dans system.lakeflow.job_tasks. NULL lorsque l’alerte s’exécute selon son propre calendrier au lieu de faire partie d’un job. Utilisez un LEFT JOIN lorsque vous effectuez une query sur system.lakeflow.job_tasks.

evaluate_alert

alert_run_id

chaîne

L'ID de l'exécution de l'évaluation de l'alerte.

4104302562320643

evaluated_state

chaîne

L’état évalué de l’alerte. Les valeurs possibles sont OK, TRIGGERED et ERROR.

TRIGGERED

evaluated_source_result

structure

Une structure qui représente la valeur source produite par l’évaluation.

{
double_value: 1.25
}

evaluated_threshold_result

structure

Une structure qui représente la valeur threshold issue de l’évaluation, ou la valeur statique définie dans la configuration de l’alerte.

{
double_value: 1.25
}

error_code

chaîne

Le code d'erreur si l'évaluation a échoué avec une erreur.

INTERNAL_ERROR

error_message

chaîne

Le message d’erreur visible par l’utilisateur si l’évaluation a échoué avec une erreur.

Query execution failed

notified_subscriptions

tableau

Tableau des abonnés ayant été notifiés avec succès. Chaque abonné est identifié par un e-mail d'utilisateur ou un identifiant de destination de notification.

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

failed_subscriptions

tableau

Un tableau des abonnés dont les notifications n’ont pas pu être envoyées. Chaque abonné est identifié par un e-mail d’utilisateur ou un ID de destination de notification.

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

start_time

Horodatage

L’heure à laquelle l’évaluation a start. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

end_time

Horodatage

L’heure à laquelle l’évaluation s’est terminée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

Nom de la colonne

Type de données

Description

Exemple

account_id

chaîne

L'ID du compte.

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

workspace_id

chaîne

L'ID du Workspace où l'alerte est définie.

1234567890123456

alert_id

chaîne

L'ID de l'alerte évaluée. Jointures vers alert_id dans system.alert.alerts.

2762099691916865

job_id

chaîne

L'ID du Job qui a exécuté l'alerte. Jointures vers job_id dans system.lakeflow.jobs. NULL lorsque l'alerte s'exécute selon son propre calendrier au lieu de faire partie d'un Job. Utilisez un LEFT JOIN lorsque vous effectuez une query sur system.lakeflow.jobs.

906851285941474

task_key

chaîne

La clé de référence de la tâche au sein du job. Jointures vers task_key dans system.lakeflow.job_tasks. NULL lorsque l’alerte s’exécute selon son propre calendrier au lieu de faire partie d’un job. Utilisez un LEFT JOIN lorsque vous effectuez une query sur system.lakeflow.job_tasks.

evaluate_alert

alert_run_id

chaîne

L'ID de l'exécution de l'évaluation de l'alerte.

4104302562320643

evaluated_state

chaîne

L’état évalué de l’alerte. Les valeurs possibles sont OK, TRIGGERED et ERROR.

TRIGGERED

evaluated_source_result

structure

Une structure qui représente la valeur source produite par l’évaluation.

{
double_value: 1.25
}

evaluated_threshold_result

structure

Une structure qui représente la valeur threshold issue de l’évaluation, ou la valeur statique définie dans la configuration de l’alerte.

{
double_value: 1.25
}

error_code

chaîne

Le code d'erreur si l'évaluation a échoué avec une erreur.

INTERNAL_ERROR

error_message

chaîne

Le message d’erreur visible par l’utilisateur si l’évaluation a échoué avec une erreur.

Query execution failed

notified_subscriptions

tableau

Tableau des abonnés ayant été notifiés avec succès. Chaque abonné est identifié par un e-mail d'utilisateur ou un identifiant de destination de notification.

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

failed_subscriptions

tableau

Un tableau des abonnés dont les notifications n’ont pas pu être envoyées. Chaque abonné est identifié par un e-mail d’utilisateur ou un ID de destination de notification.

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

start_time

Horodatage

L’heure à laquelle l’évaluation a start. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

end_time

Horodatage

L’heure à laquelle l’évaluation s’est terminée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, +00:00 représentant le fuseau horaire UTC.

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

Exemples de queries

Les exemples de queries suivants montrent des méthodes courantes pour analyser la configuration des alertes et l'historique des évaluations. Chaque query utilise des marqueurs de parameter nommés pour les ID d'alerte et de workspace, de sorte que vous soyez invité à saisir les valeurs lorsque vous exécutez la query.

Rechercher l'évaluation la plus récente d'une alerte

Cette query renvoie la dernière configuration d'une alerte spécifique ainsi que son évaluation la plus récente.

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;

Découvrir quelles alertes se sont le plus déclenchées au cours des sept derniers jours

Cette query compte le nombre de fois où chaque alerte s'est déclenchée dans un workspace au cours des sept derniers jours.

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;

Suivre l'évolution de l'état d'une alerte au fil du temps

Cette query résume le nombre quotidien de chaque état évalué pour une alerte spécifique au cours des 30 derniers jours. Utilisez-le pour créer un tableau de bord qui surveille la fiabilité des alertes.

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;

Lister les alertes actives dans un Workspace

Cette query renvoie la dernière configuration de chaque alerte qui n’est ni supprimée ni suspendue dans un 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';