Referensi tabel sistem peringatan

Important

Tabel sistem ini berada dalam Pratinjau Umum.

Halaman ini mencakup informasi tentang tabel sistem peringatan, termasuk garis besar skema setiap tabel. Gunakan tabel-tabel ini untuk mengquery peringatan workspace Anda dan riwayat evaluasinya langsung di SQL, sehingga Anda dapat mengaudit definisi peringatan, menganalisis tren evaluasi, dan memantau beban kerja peringatan secara besar-besaran.

Skema ini system.alert berisi dua tabel:

  • system.alert.alerts: Konfigurasi setiap peringatan, termasuk definisi, jadwal, ambang evaluasi, pelanggan, dan timestamp siklus hidup.
  • system.alert.alert_evaluation_history: Satu baris per evaluasi peringatan, menangkap status yang dievaluasi, nilai hasil, status pengiriman notifikasi, dan detail kesalahan.

Requirements

Secara default, hanya pengguna dengan peran admin akun dan admin metastore yang memiliki akses ke tabel sistem peringatan. Untuk membagikan data tabel dengan pengguna atau grup, Databricks merekomendasikan membuat tampilan dinamis untuk setiap pengguna atau grup. Lihat Membuat tampilan dinamis.

Skema tabel konfigurasi peringatan

Tabel ini system.alert.alerts adalah tabel dimensi yang berubah perlahan. Setiap baris menangkap konfigurasi peringatan pada suatu titik, sehingga satu peringatan memiliki beberapa baris ketika konfigurasinya berubah.

Jalur tabel: Tabel sistem ini terletak di system.alert.alerts.

Tabel system.alert.alerts menggunakan skema berikut:

Nama kolom Jenis data Deskripsi Example
account_id string ID akun. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string ID workspace tempat peringatan didefinisikan. 1234567890123456
alert_id string ID pemberitahuan. 2762099691916865
display_name string Nama tampilan peringatan. Test Alert
owned_by string Nama pengguna pemilik peringatan. Atur ke jika Unavailable pengguna telah dihapus. example@databricks.com
compute struct Struct yang mewakili sumber daya komputasi yang terpasang pada peringatan. Nilainya type adalah salah satu WAREHOUSE atau SERVERLESS_COMPUTE. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as string ID pengguna atau prinsipal layanan yang kredensialnya digunakan untuk menjalankan peringatan. 2967555311742259
schedule struct Struct yang mewakili jadwal peringatan, termasuk status jeda, jadwal cron, dan zona waktu. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct Struct yang mewakili kolom sumber dari hasil kueri yang digunakan untuk mengevaluasi peringatan, termasuk agregasi yang diterapkan padanya. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator string Operator yang digunakan untuk membandingkan nilai sumber dengan ambang batas selama evaluasi. Misalnya: GREATER_THAN, LESS_THAN, dan EQUAL. LESS_THAN
evaluation_threshold struct Struct yang mewakili ambang batas yang dibandingkan dengan nilai sumber. Ambang batas adalah nilai statis atau kolom lain. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state string Status yang dilaporkan peringatan ketika kueri mengembalikan hasil kosong. Nilai yang memungkinkan adalah OK, TRIGGERED, dan ERROR. OK
notify_on_ok Boolean Apakah akan memberi tahu pelanggan saat peringatan kembali ke OK status tersebut. true
retrigger_seconds int Jumlah detik peringatan menunggu setelah dipicu sebelum dapat aktif lagi. Jika 0, peringatan tidak akan aktif lagi. 0
subscriptions array Array pelanggan yang menerima notifikasi peringatan. Setiap pelanggan diidentifikasi melalui email pengguna atau ID tujuan notifikasi. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time stempel waktu Waktu terakhir kali konfigurasi diubah. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-01T01:01:01.123+00:00
create_time stempel waktu Waktu peringatan dibuat. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-01T01:01:01.123+00:00
delete_time stempel waktu Waktu peringatan dihapus secara permanen. Peringatan yang dipindahkan ke tempat sampah tidak tercatat. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-01T01:01:01.123+00:00

Skema tabel riwayat evaluasi peringatan

Tabel ini system.alert.alert_evaluation_history mencatat satu baris untuk setiap evaluasi peringatan, menangkap status yang dievaluasi dan statistik terkait.

Jalur tabel: Tabel sistem ini terletak di system.alert.alert_evaluation_history.

Tabel system.alert.alert_evaluation_history menggunakan skema berikut:

Nama kolom Jenis data Deskripsi Example
account_id string ID akun. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string ID workspace tempat peringatan didefinisikan. 1234567890123456
alert_id string ID peringatan yang dievaluasi. Bergabung dengan alert_id .system.alert.alerts 2762099691916865
job_id string ID pekerjaan yang menjalankan peringatan tersebut. Bergabung dengan job_id .system.lakeflow.jobs NULL ketika peringatan berjalan sesuai jadwalnya sendiri, bukan sebagai bagian dari pekerjaan. Gunakan a LEFT JOIN saat Anda melakukan query terhadap system.lakeflow.jobs. 906851285941474
task_key string Kunci referensi untuk tugas dalam pekerjaan. Bergabung dengan task_key .system.lakeflow.job_tasks NULL ketika peringatan berjalan sesuai jadwalnya sendiri, bukan sebagai bagian dari pekerjaan. Gunakan a LEFT JOIN saat Anda melakukan query terhadap system.lakeflow.job_tasks. evaluate_alert
alert_run_id string ID dari evaluasi peringatan yang dijalankan. 4104302562320643
evaluated_state string Keadaan peringatan yang dievaluasi. Nilai yang memungkinkan adalah OK, TRIGGERED, dan ERROR. TRIGGERED
evaluated_source_result struct Struct yang mewakili nilai sumber yang dihasilkan oleh evaluasi. {
double_value: 1.25
}
evaluated_threshold_result struct Struct yang mewakili nilai ambang batas dari evaluasi, atau nilai statis yang diatur dalam konfigurasi peringatan. {
double_value: 1.25
}
error_code string Kode kesalahan jika evaluasi gagal dengan kesalahan. INTERNAL_ERROR
error_message string Pesan kesalahan yang terlihat pengguna jika evaluasi gagal dengan kesalahan. Query execution failed
notified_subscriptions array Array pelanggan yang berhasil diberitahu. Setiap pelanggan diidentifikasi melalui email pengguna atau ID tujuan notifikasi. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions array Array pelanggan yang notifikasinya gagal dikirim. Setiap pelanggan diidentifikasi melalui email pengguna atau ID tujuan notifikasi. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time stempel waktu Waktu evaluasi dimulai. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-01T01:01:01.123+00:00
end_time stempel waktu Waktu evaluasi berakhir. Informasi zona waktu dicatat di akhir nilai dengan +00:00 mewakili UTC. 2023-01-01T01:01:01.123+00:00

Contoh pertanyaan

Contoh kueri berikut menunjukkan cara umum untuk menganalisis konfigurasi peringatan dan riwayat evaluasi. Setiap query menggunakan penanda parameter bernama untuk ID alert dan workspace, sehingga Anda akan diminta untuk menentukan nilai saat menjalankan query.

Temukan evaluasi terbaru untuk sebuah peringatan

Kueri ini mengembalikan konfigurasi terbaru dari peringatan tertentu beserta evaluasi terbarunya.

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;

Temukan peringatan mana yang paling banyak dipicu dalam tujuh hari terakhir

Kueri ini menghitung berapa kali setiap peringatan dipicu di workspace selama tujuh hari terakhir.

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;

Lacak bagaimana status peringatan berubah seiring waktu

Kueri ini merangkum jumlah harian setiap negara bagian yang dievaluasi untuk peringatan tertentu selama 30 hari terakhir. Gunakan untuk membangun dashboard yang memantau keandalan peringatan.

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;

Daftarkan peringatan aktif di workspace

Kueri ini mengembalikan konfigurasi terbaru dari setiap peringatan yang tidak dihapus dan tidak dijeda di 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';