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

Important

Cette table système est en préversion publique.

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

Le system.alert schéma contient deux tableaux :

  • system.alert.alerts: La configuration de chaque alerte, y compris sa définition, son calendrier, ses seuils d’évaluation, ses abonnés et ses horodatages du cycle de vie.
  • system.alert.alert_evaluation_history: Une ligne par évaluation d’alerte, capturant l’état évalué, les valeurs des résultats, l’état de la notification et les détails de l’erreur.

Requirements

Par défaut, seuls les utilisateurs ayant à la fois les rôles d’administrateur de compte et d’administrateur du métastore ont accès aux tables du système d’alertes. 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. Consultez Créer une vue dynamique.

Schéma de table de configuration d’alerte

La system.alert.alerts table est une table de dimensions à variation lente. Chaque ligne capture la configuration d’une alerte à un moment donné, de sorte qu’une seule alerte comporte plusieurs lignes lorsque sa configuration change.

Chemin d’accès de la table : cette table système se trouve à l’emplacement system.alert.alerts.

Le system.alert.alerts tableau utilise le schéma suivant :

Nom de la colonne Type de données Description Exemple
account_id string Identificateur du compte. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string L’identifiant de l’espace de travail où l’alerte est définie. 1234567890123456
alert_id string ID de l’alerte. 2762099691916865
display_name string Nom complet de l’alerte. Test Alert
owned_by string Le nom d’utilisateur du propriétaire de l’alerte. Réglez sur Unavailable si l’utilisateur a été supprimé. example@databricks.com
compute struct Une structure qui représente la ressource de calcul associée à l’alerte. La type valeur est soit WAREHOUSESERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as string L’identifiant de l’utilisateur ou du principal de service dont les identifiants sont utilisés pour exécuter l’alerte. 2967555311742259
schedule struct Une structure qui représente le calendrier de l’alerte, y compris son statut de pause, son calendrier cron et son fuseau horaire. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct Une structure qui représente la colonne source du résultat de la requête utilisée pour évaluer l’alerte, y compris l’agrégation qui y est appliquée. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator string L’opérateur comparait la valeur source avec le seuil lors de l’évaluation. Par exemple : GREATER_THAN, LESS_THAN et EQUAL. LESS_THAN
evaluation_threshold struct Une structure qui représente le seuil avec lequel la valeur source est comparée. Le seuil est soit une valeur statique, soit une autre colonne. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state string L’état de l’alerte rapporte lorsque la requête retourne un résultat vide. Les valeurs possibles sont OK, TRIGGERED et ERROR. OK
notify_on_ok booléen Savoir s’il faut informer les abonnés lorsque l’alerte revient dans l’État OK . true
retrigger_seconds int Le nombre de secondes que l’alerte attend après avoir été déclenchée avant de pouvoir se déclencher à nouveau. Si 0, l’alerte ne se déclenche pas à nouveau. 0
subscriptions tableau Une série d’abonnés qui reçoivent la notification d’alerte. Chaque abonné est identifié par une adresse e-mail utilisateur ou un identifiant de destination de notification. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time timestamp L’heure à laquelle la configuration a été modifiée pour la dernière fois. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur en représentant +00:00 l’UTC. 2023-01-01T01:01:01.123+00:00
create_time timestamp L’heure à laquelle l’alerte a été créée. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur en représentant +00:00 l’UTC. 2023-01-01T01:01:01.123+00:00
delete_time timestamp L’heure où l’alerte a été définitivement supprimée. Les alertes déplacées vers la poubelle ne sont pas enregistrées. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur en représentant +00:00 l’UTC. 2023-01-01T01:01:01.123+00:00

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

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

Chemin d’accès de la table : cette table système se trouve à l’emplacement system.alert.alert_evaluation_history.

Le system.alert.alert_evaluation_history tableau utilise le schéma suivant :

Nom de la colonne Type de données Description Exemple
account_id string Identificateur du compte. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string L’identifiant de l’espace de travail où l’alerte est définie. 1234567890123456
alert_id string L’identification de l’alerte évaluée. Rejoint à alert_id dans system.alert.alerts. 2762099691916865
job_id string L’identifiant du travail qui a lancé l’alerte. Rejoint à job_id dans system.lakeflow.jobs. NULL Quand l’alerte s’exécute selon son propre rythme au lieu de faire partie d’un travail. Utilisez un LEFT JOIN lorsque vous interrogez contre system.lakeflow.jobs. 906851285941474
task_key string La clé de référence pour la tâche dans le poste. Rejoint à task_key dans system.lakeflow.job_tasks. NULL Quand l’alerte s’exécute selon son propre rythme au lieu de faire partie d’un travail. Utilisez un LEFT JOIN lorsque vous interrogez contre system.lakeflow.job_tasks. evaluate_alert
alert_run_id string L’ID de l’exécution d’évaluation de l’alerte. 4104302562320643
evaluated_state string L’état évalué de l’alerte. Les valeurs possibles sont OK, TRIGGERED et ERROR. TRIGGERED
evaluated_source_result struct Une structure qui représente la valeur source produite par l’évaluation. {
double_value: 1.25
}
evaluated_threshold_result struct Une struct qui représente la valeur seuil de l’évaluation, ou la valeur statique définie dans la configuration d’alerte. {
double_value: 1.25
}
error_code string Le code d’erreur si l’évaluation a échoué avec une erreur. INTERNAL_ERROR
error_message string Le message d’erreur visible par l’utilisateur si l’évaluation a échoué avec une erreur. Query execution failed
notified_subscriptions tableau Une série d’abonnés qui ont été informés avec succès. Chaque abonné est identifié par une adresse e-mail utilisateur ou un identifiant de destination de notification. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions tableau Un ensemble d’abonnés dont les notifications n’ont pas été envoyées. Chaque abonné est identifié par une adresse e-mail utilisateur ou un identifiant de destination de notification. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time timestamp Le moment où l’évaluation a commencé. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur en représentant +00:00 l’UTC. 2023-01-01T01:01:01.123+00:00
end_time timestamp L’heure à laquelle l’évaluation s’est terminée. Les informations sur le fuseau horaire sont enregistrées à la fin de la valeur en représentant +00:00 l’UTC. 2023-01-01T01:01:01.123+00:00

Exemples de requêtes

Les requêtes exemples suivantes montrent des méthodes courantes pour analyser l’historique de configuration et d’évaluation des alertes. Chaque requête utilise des marqueurs de paramètres nommés pour les identifiants d’alerte et d’espace de travail, donc on vous demande les valeurs lors de l’exécution de la requête.

Trouvez la dernière évaluation pour une alerte

Cette requête renvoie la dernière configuration d’une alerte spécifique en même temps 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;

Trouvez quelles alertes se sont déclenchées le plus ces sept derniers jours

Cette requête compte le nombre de fois où chaque alerte a été déclenchée dans un espace de travail 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;

Suivez comment l’état d’une alerte a évolué au fil du temps

Cette requête résume le nombre quotidien de chaque État évalué pour une alerte spécifique au cours des 30 derniers jours. Utilisez-le pour construire 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;

Listez les alertes actives dans un espace de travail

Cette requête renvoie la dernière configuration de chaque alerte qui n’est pas supprimée et non mise en pause dans un espace de travail.

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