Référence des tables système d’alerte
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 |
|---|---|---|---|
| chaîne | L'ID du compte. |
|
| chaîne | L'ID du Workspace où l'alerte est définie. |
|
| chaîne | L'ID de l'alerte. |
|
| chaîne | Le nom d’affichage de l’alerte. |
|
| chaîne | Le nom d'utilisateur du propriétaire de l'alerte. Défini sur |
|
| structure | Une structure qui représente la ressource de compute associée à l'alerte. La valeur |
|
| chaîne | L’ID de l’utilisateur ou du service principal Databricks dont les identifiants sont utilisés pour exécuter l’alerte. |
|
| structure | Une structure qui représente le calendrier de l’alerte, y compris son état de suspension, son calendrier cron et son fuseau horaire. |
|
| 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. |
|
| chaîne | L'opérateur utilisé pour comparer la valeur source au threshold pendant l'évaluation. Par exemple : |
|
| 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. |
|
| chaîne | L'état rapporté par l'alerte lorsque la query renvoie un résultat vide. Les valeurs possibles sont |
|
| booléen | Indique s'il faut notifier les abonnés lorsque l'alerte revient à l'état |
|
| entier | Nombre de secondes pendant lesquelles l'alerte attend après avoir été Triggered avant de pouvoir se Trigger à nouveau. Si |
|
| 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. |
|
| 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, |
|
| Horodatage | L'heure à laquelle l'alerte a été créée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, |
|
| 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, |
|
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 |
|---|---|---|---|
| chaîne | L'ID du compte. |
|
| chaîne | L'ID du Workspace où l'alerte est définie. |
|
| chaîne | L'ID de l'alerte évaluée. Jointures vers |
|
| chaîne | L'ID du Job qui a exécuté l'alerte. Jointures vers |
|
| chaîne | La clé de référence de la tâche au sein du job. Jointures vers |
|
| chaîne | L'ID de l'exécution de l'évaluation de l'alerte. |
|
| chaîne | L’état évalué de l’alerte. Les valeurs possibles sont |
|
| structure | Une structure qui représente la valeur source produite par l’évaluation. |
|
| 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. |
|
| chaîne | Le code d'erreur si l'évaluation a échoué avec une erreur. |
|
| chaîne | Le message d’erreur visible par l’utilisateur si l’évaluation a échoué avec une erreur. |
|
| 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. |
|
| 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. |
|
| Horodatage | L’heure à laquelle l’évaluation a start. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, |
|
| Horodatage | L’heure à laquelle l’évaluation s’est terminée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, |
|
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.
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.
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.
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.
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';