メインコンテンツまでスキップ

アラートシステムテーブルのリファレンス

備考

プレビュー

このシステムテーブルは パブリック プレビュー段階です。

このページには、各テーブルのスキーマの概要など、アラート システムテーブルに関する情報が含まれています。これらのテーブルを使用して、ワークスペースの アラート とその評価履歴を 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テーブルは次のスキーマを使用しています。

列名

データ型

説明

account_id

string

アカウントのID。

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

workspace_id

string

アラートが定義されているワークスペースのID。

1234567890123456

alert_id

string

アラートの ID。

2762099691916865

display_name

string

アラートの表示名。

Test Alert

owned_by

string

アラート所有者のユーザー名。ユーザーが削除された場合は Unavailable に設定します。

example@databricks.com

compute

struct

アラートにアタッチされたコンピュートリソースを表す構造体。type の値は WAREHOUSE または SERVERLESS_COMPUTE です。

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

run_as

string

アラートの実行に使用される資格情報を持つユーザーまたは Databricks Service Principal の ID。

2967555311742259

schedule

struct

アラートのスケジュールを表す構造体。一時停止ステータス、cron スケジュール、タイムゾーンが含まれます。

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

evaluation_source

struct

アラートの評価に使用されたクエリー結果のソース列を表す構造体。適用された集計を含みます。

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

evaluation_comparison_operator

string

評価中にソース値をthresholdと比較するために使用される演算子。例:GREATER_THANLESS_THAN、および EQUAL

LESS_THAN

evaluation_threshold

struct

ソース値が比較されるthresholdを表す構造体。The thresholdは、静的な値または別の列のいずれかです。

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

string

クエリーが空の結果を返したときにアラートが報告する状態。指定できる値は、OKTRIGGERED、および ERRORです。

OK

notify_on_ok

boolean

アラートがOKの状態に戻ったときにサブスクライバーに通知するかどうか。

true

retrigger_seconds

int

アラートがTriggerされてから、再度Triggerされるまでに待機する秒数。0 の場合、アラートは再度Triggerされません。

0

subscriptions

array

アラート通知を受け取るサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

change_time

timestamp

構成が最後に変更された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

create_time

timestamp

アラートが作成された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

delete_time

timestamp

アラートが完全に削除された時刻。ゴミ箱に移動されたアラートは記録されません。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

列名

データ型

説明

account_id

string

アカウントのID。

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

workspace_id

string

アラートが定義されているワークスペースのID。

1234567890123456

alert_id

string

アラートの ID。

2762099691916865

display_name

string

アラートの表示名。

Test Alert

owned_by

string

アラート所有者のユーザー名。ユーザーが削除された場合は Unavailable に設定します。

example@databricks.com

compute

struct

アラートにアタッチされたコンピュートリソースを表す構造体。type の値は WAREHOUSE または SERVERLESS_COMPUTE です。

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

run_as

string

アラートの実行に使用される資格情報を持つユーザーまたは Databricks Service Principal の ID。

2967555311742259

schedule

struct

アラートのスケジュールを表す構造体。一時停止ステータス、cron スケジュール、タイムゾーンが含まれます。

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

evaluation_source

struct

アラートの評価に使用されたクエリー結果のソース列を表す構造体。適用された集計を含みます。

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

evaluation_comparison_operator

string

評価中にソース値をthresholdと比較するために使用される演算子。例:GREATER_THANLESS_THAN、および EQUAL

LESS_THAN

evaluation_threshold

struct

ソース値が比較されるthresholdを表す構造体。The thresholdは、静的な値または別の列のいずれかです。

{
value: {
double_value: 1.25
}
}

evaluation_empty_result_state

string

クエリーが空の結果を返したときにアラートが報告する状態。指定できる値は、OKTRIGGERED、および ERRORです。

OK

notify_on_ok

boolean

アラートがOKの状態に戻ったときにサブスクライバーに通知するかどうか。

true

retrigger_seconds

int

アラートがTriggerされてから、再度Triggerされるまでに待機する秒数。0 の場合、アラートは再度Triggerされません。

0

subscriptions

array

アラート通知を受け取るサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

change_time

timestamp

構成が最後に変更された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

create_time

timestamp

アラートが作成された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

delete_time

timestamp

アラートが完全に削除された時刻。ゴミ箱に移動されたアラートは記録されません。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

アラート評価履歴テーブルのスキーマ

system.alert.alert_evaluation_history テーブルには、アラート評価ごとに1行が記録され、評価された状態と関連する統計がキャプチャされます。

テーブルパス : このシステムテーブルは system.alert.alert_evaluation_history にあります。

system.alert.alert_evaluation_historyテーブルは次のスキーマを使用しています。

列名

データ型

説明

account_id

string

アカウントのID。

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

workspace_id

string

アラートが定義されているワークスペースのID。

1234567890123456

alert_id

string

評価されたアラートのID。system.alert.alerts 内の alert_id への結合。

2762099691916865

job_id

string

アラートを実行したジョブの ID。system.lakeflow.jobs 内の job_id への結合。ジョブの一部としてではなく、独自スケジュールでアラートが実行される場合の NULLsystem.lakeflow.jobs に対してクエリーを実行する場合は、LEFT JOIN を使用します。

906851285941474

task_key

string

ジョブ内のタスクの参照キー。system.lakeflow.job_tasks 内の task_key への結合。アラートがジョブの一部としてではなく、独自のスケジュールで実行される場合の NULLsystem.lakeflow.job_tasks に対してクエリーを実行する場合は、LEFT JOIN を使用します。

evaluate_alert

alert_run_id

string

アラート評価ランのID。

4104302562320643

evaluated_state

string

アラートの評価済み状態。指定できる値は、OKTRIGGERED、およびERRORです。

TRIGGERED

evaluated_source_result

struct

評価によって生成されたソース値を表す構造体。

{
double_value: 1.25
}

evaluated_threshold_result

struct

評価からのthreshold、またはアラート構成で設定された静的な値を表す構造体。

{
double_value: 1.25
}

error_code

string

評価がエラーで失敗した場合のエラーコード。

INTERNAL_ERROR

error_message

string

評価がエラーで失敗した場合にユーザーに表示されるエラーメッセージ。

Query execution failed

notified_subscriptions

array

正常に通知されたサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

failed_subscriptions

array

通知の送信に失敗したサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

start_time

timestamp

評価が開始された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

end_time

timestamp

評価が終了した時刻。タイムゾーン情報は値の末尾に記録され、+00:00はUTCを表します。

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

列名

データ型

説明

account_id

string

アカウントのID。

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

workspace_id

string

アラートが定義されているワークスペースのID。

1234567890123456

alert_id

string

評価されたアラートのID。system.alert.alerts 内の alert_id への結合。

2762099691916865

job_id

string

アラートを実行したジョブの ID。system.lakeflow.jobs 内の job_id への結合。ジョブの一部としてではなく、独自スケジュールでアラートが実行される場合の NULLsystem.lakeflow.jobs に対してクエリーを実行する場合は、LEFT JOIN を使用します。

906851285941474

task_key

string

ジョブ内のタスクの参照キー。system.lakeflow.job_tasks 内の task_key への結合。アラートがジョブの一部としてではなく、独自のスケジュールで実行される場合の NULLsystem.lakeflow.job_tasks に対してクエリーを実行する場合は、LEFT JOIN を使用します。

evaluate_alert

alert_run_id

string

アラート評価ランのID。

4104302562320643

evaluated_state

string

アラートの評価済み状態。指定できる値は、OKTRIGGERED、およびERRORです。

TRIGGERED

evaluated_source_result

struct

評価によって生成されたソース値を表す構造体。

{
double_value: 1.25
}

evaluated_threshold_result

struct

評価からのthreshold、またはアラート構成で設定された静的な値を表す構造体。

{
double_value: 1.25
}

error_code

string

評価がエラーで失敗した場合のエラーコード。

INTERNAL_ERROR

error_message

string

評価がエラーで失敗した場合にユーザーに表示されるエラーメッセージ。

Query execution failed

notified_subscriptions

array

正常に通知されたサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

failed_subscriptions

array

通知の送信に失敗したサブスクライバの配列。各サブスクライバは、ユーザーのEメールまたは通知先IDによって識別されます。

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

start_time

timestamp

評価が開始された時刻。タイムゾーン情報は値の末尾に記録され、+00:00 は UTC を表します。

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

end_time

timestamp

評価が終了した時刻。タイムゾーン情報は値の末尾に記録され、+00:00はUTCを表します。

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

サンプルクエリー

以下のサンプルクエリーは、アラートの構成と評価履歴を分析する一般的な方法を示しています。各クエリーは、アラートIDとワークスペースIDに 名前付きパラメーターマーカー を使用しているため、クエリーを実行する際に値の入力を求められます。

アラートの最新の評価を検索

このクエリーは、特定のアラートの最新の構成と、その最新の評価を返します。

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;

過去 7 日間に最も多くTriggerされたアラートを確認する

このクエリーは、過去7日間にワークスペース内で各アラートが何回 Trigger されたかをカウントします。

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;

アラートの状態が時間の経過とともにどのように変化したかを追跡する

このクエリーは、過去 30 日間における特定の各アラートの評価済み状態の 1 日あたりの件数を集計します。これを使用して、アラートの信頼性を監視するダッシュボードを構築します。

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;

ワークスペース内のアクティブなアラートを一覧表示する

このクエリーは、ワークスペース内で削除されておらず、停止もされていない各アラートの最新の構成を返します。

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