アラートシステムテーブルのリファレンス
プレビュー
このシステムテーブルは パブリック プレビュー段階です。
このページには、各テーブルのスキーマの概要など、アラート システムテーブルに関する情報が含まれています。これらのテーブルを使用して、ワークスペースの アラート とその評価履歴を SQL で直接クエリーします。これにより、アラート定義の監査、評価傾向の分析、アラートワークロードの大規模な監視が可能になります。
system.alert スキーマには 2 つのテーブルが含まれています:
system.alert.alerts:定義、スケジュール、評価のthreshold、サブスクライバー、ライフサイクルTimestampなど、各アラートの構成。system.alert.alert_evaluation_history:アラート評価ごとに1行。評価された状態、結果値、通知配信ステータス、およびエラーの詳細をキャプチャします。
要件
By default, only users with both the アカウント admin and アラート metastore admin roles have access to the アラート システムテーブルs.テーブルのデータをユーザーまたはグループと共有するには、ユーザーまたはグループごとに動的ビューを作成することをDatabricksでは推奨しています。「ダイナミックビューの作成」を参照してください。
アラート構成テーブルスキーマ
system.alert.alertsテーブルは、変化の遅いディメンションテーブルです。各行は特定の時点におけるアラートの構成を記録しているため、構成が変更されると、単一のアラートに対して複数の行が存在することになります。
テーブルパス : このシステムテーブルは system.alert.alerts にあります。
system.alert.alertsテーブルは次のスキーマを使用しています。
列名 | データ型 | 説明 | 例 |
|---|---|---|---|
| string | アカウントのID。 |
|
| string | アラートが定義されているワークスペースのID。 |
|
| string | アラートの ID。 |
|
| string | アラートの表示名。 |
|
| string | アラート所有者のユーザー名。ユーザーが削除された場合は |
|
| struct | アラートにアタッチされたコンピュートリソースを表す構造体。 |
|
| string | アラートの実行に使用される資格情報を持つユーザーまたは Databricks Service Principal の ID。 |
|
| struct | アラートのスケジュールを表す構造体。一時停止ステータス、cron スケジュール、タイムゾーンが含まれます。 |
|
| struct | アラートの評価に使用されたクエリー結果のソース列を表す構造体。適用された集計を含みます。 |
|
| string | 評価中にソース値をthresholdと比較するために使用される演算子。例: |
|
| struct | ソース値が比較されるthresholdを表す構造体。The thresholdは、静的な値または別の列のいずれかです。 |
|
| string | クエリーが空の結果を返したときにアラートが報告する状態。指定できる値は、 |
|
| boolean | アラートが |
|
| int | アラートがTriggerされてから、再度Triggerされるまでに待機する秒数。 |
|
| array | アラート通知を受け取るサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。 |
|
| timestamp | 構成が最後に変更された時刻。タイムゾーン情報は値の末尾に記録され、 |
|
| timestamp | アラートが作成された時刻。タイムゾーン情報は値の末尾に記録され、 |
|
| timestamp | アラートが完全に削除された時刻。ゴミ箱に移動されたアラートは記録されません。タイムゾーン情報は値の末尾に記録され、 |
|
アラート評価履歴テーブルのスキーマ
system.alert.alert_evaluation_history テーブルには、アラート評価ごとに1行が記録され、評価された状態と関連する統計がキャプチャされます。
テーブルパス : このシステムテーブルは system.alert.alert_evaluation_history にあります。
system.alert.alert_evaluation_historyテーブルは次のスキーマを使用しています。
列名 | データ型 | 説明 | 例 |
|---|---|---|---|
| string | アカウントのID。 |
|
| string | アラートが定義されているワークスペースのID。 |
|
| string | 評価されたアラートのID。 |
|
| string | アラートを実行したジョブの ID。 |
|
| string | ジョブ内のタスクの参照キー。 |
|
| string | アラート評価ランのID。 |
|
| string | アラートの評価済み状態。指定できる値は、 |
|
| struct | 評価によって生成されたソース値を表す構造体。 |
|
| struct | 評価からのthreshold、またはアラート構成で設定された静的な値を表す構造体。 |
|
| string | 評価がエラーで失敗した場合のエラーコード。 |
|
| string | 評価がエラーで失敗した場合にユーザーに表示されるエラーメッセージ。 |
|
| array | 正常に通知されたサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。 |
|
| array | 通知の送信に失敗したサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。 |
|
| timestamp | 評価が開始された時刻。タイムゾーン情報は値の末尾に記録され、 |
|
| timestamp | 評価が終了した時刻。タイムゾーン情報は値の末尾に記録され、 |
|
サンプルクエリー
以下のサンプルクエリーは、アラートの構成と評価履歴を分析する一般的な方法を示しています。各クエリーは、アラートIDとワークスペースIDに 名前付きパラメーターマーカー を使用しているため、クエリーを実行する際に値の入力を求められます。
アラートの最新の評価を検索
このクエリーは、特定のアラートの最新の構成と、その最新の評価を返します。
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;
過去 7 日間に最も多くTriggerされたアラートを確認する
このクエリーは、過去7日間にワークスペース内で各アラートが何回 Trigger されたかをカウントします。
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;
アラートの状態が時間の経過とともにどのように変化したかを追跡する
このクエリーは、過去 30 日間における特定の各アラートの評価済み状態の 1 日あたりの件数を集計します。これを使用して、アラートの信頼性を監視するダッシュボードを構築します。
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;
ワークスペース内のアクティブなアラートを一覧表示する
このクエリーは、ワークスペース内で削除されておらず、停止もされていない各アラートの最新の構成を返します。
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';