Uyarı sistemi tabloları referansı

Important

Bu sistem tablosu Genel Önizleme aşamasındadır.

Bu sayfa, uyarı sistemi tabloları hakkında bilgiler içerir ve her tablonun şemasının özetini içerir. Bu tabloları kullanarak çalışma alanı uyarılarınızı ve değerlendirme geçmişinizi doğrudan SQL'de sorgulayın; böylece uyarı tanımlarını denetleyebilir, değerlendirme eğilimlerini analiz edebilir ve uyarı iş yüklerini ölçekli olarak izleyebilirsiniz.

Şema system.alert iki tablo içerir:

  • system.alert.alerts: Her uyarının yapılandırması; tanımı, takvimi, değerlendirme eşikleri, aboneleri ve yaşam döngüsü zaman damgaları dahil.
  • system.alert.alert_evaluation_history: Her uyarı değerlendirmesi için bir satır yapılır, değerlendirilen durumu, sonuç değerlerini, bildirim teslim durumunu ve hata detaylarını yakalar.

Requirements

Varsayılan olarak, hem hesap yöneticisi hem de metastore yöneticisi rolüne sahip kullanıcılar uyarı sistemi tablolarına erişebilir. Bir tablonun verilerini bir kullanıcı veya grupla paylaşmak için Databricks, her kullanıcı veya grup için dinamik bir görünüm oluşturulmasını önerir. Bkz. Dinamik görünüm oluşturma.

Uyarı yapılandırma tablosu şeması

Tablo, system.alert.alerts yavaş değişen bir boyut tablosudur. Her satır, bir uyarının belirli bir noktadaki yapılandırmasını yakalar, böylece tek bir uyarı yapılandırması değiştiğinde birden fazla satır içerir.

Tablo yolu: Bu sistem tablosu system.alert.alertskonumunda bulunur.

Tablo system.alert.alerts aşağıdaki şemayı kullanır:

Sütun adı Veri türü Description Example
account_id dize Hesabın kimliği. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id dize Uyarının tanımlandığı çalışma alanının kimliği. 1234567890123456
alert_id dize Uyarının kimliği. 2762099691916865
display_name dize Uyarının görünen adı. Test Alert
owned_by dize Uyarı sahibinin kullanıcı adı. Kullanıcı silinmiş olup olmadığını ayarlayın Unavailable . example@databricks.com
compute struct Uyarıya bağlı hesaplama kaynağını temsil eden bir yapı. Değer type ya WAREHOUSE da SERVERLESS_COMPUTE'dir. {
type: WAREHOUSE,
cluster_id: NULL,
warehouse_id: 802f6d5283291c0d
}
run_as dize Uyarıyı çalıştırmak için kullanılan kullanıcı veya hizmet yöneticisinin kimliği. 2967555311742259
schedule struct Uyarının duraklama durumu, cron programı ve saat dilimi dahil olmak üzere programını temsil eden bir yapı. {
pause_status: UNPAUSED,
quartz_cron_schedule: 0 0 10 * * ?,
timezone_id: UTC
}
evaluation_source struct Uyarıyı değerlendirmek için kullanılan sorgu sonucundaki kaynak sütununu temsil eden ve ona uygulanan toplama dahil bir yapı. {
aggregation: SUM,
display: x,
name: x
}
evaluation_comparison_operator dize Değerlendirme sırasında kaynak değerini eşik ile karşılaştırmak için kullanılan operatör. Örneğin: GREATER_THAN, LESS_THANve EQUAL. LESS_THAN
evaluation_threshold struct Kaynak değerinin karşılaştırıldığı eşik değerini temsil eden bir yapı. Eşik ya statik bir değer ya da başka bir sütundur. {
value: {
double_value: 1.25
}
}
evaluation_empty_result_state dize Sorgu boş bir sonuç döndürdüğünde uyarının bildirdiği durum. Olası değerler OK, TRIGGEREDve ERROR. OK
notify_on_ok boolean Uyarı eyalete döndüğünde OK aboneleri bilgilendirip bildirmemesi meselesi. true
retrigger_seconds Int Uyarının tetiklendikten sonra tekrar tetiklenmeden önce beklediği saniye sayısı. Eğer 0, uyarı tekrar tetiklenmez. 0
subscriptions Dizi Uyarı bildirimini alan abonelerin bir dizisi. Her abone, bir kullanıcı e-posta adresi veya bildirim varış kimliği ile tanımlanır. [
{
user_email: example@databricks.com,
destination_id: null
}
]
change_time timestamp Konfigürasyonun en son değiştirildiği zaman. Zaman dilimi bilgisi, değerin sonunda UTC'yi +00:00 temsil ederek kaydedilir. 2023-01-01T01:01:01.123+00:00
create_time timestamp Uyarının oluşturulduğu zaman. Zaman dilimi bilgisi, değerin sonunda UTC'yi +00:00 temsil ederek kaydedilir. 2023-01-01T01:01:01.123+00:00
delete_time timestamp Uyarının kalıcı olarak silindiği zaman. Çöpe taşınan uyarılar kaydedilmez. Zaman dilimi bilgisi, değerin sonunda UTC'yi +00:00 temsil ederek kaydedilir. 2023-01-01T01:01:01.123+00:00

Uyarı değerlendirme geçmişi tablosu şeması

Tablo, system.alert.alert_evaluation_history her uyarı değerlendirmesi için bir satır kaydeder ve değerlendirilen durumu ve ilgili istatistikleri yakalar.

Tablo yolu: Bu sistem tablosu system.alert.alert_evaluation_historykonumunda bulunur.

Tablo system.alert.alert_evaluation_history aşağıdaki şemayı kullanır:

Sütun adı Veri türü Description Example
account_id dize Hesabın kimliği. 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id dize Uyarının tanımlandığı çalışma alanının kimliği. 1234567890123456
alert_id dize Değerlendirilen uyarının kimliği. Birleştirir alert_idsystem.alert.alerts. 2762099691916865
job_id dize Uyarıyı çalıştıran işin kimliği. Birleştirir job_idsystem.lakeflow.jobs. NULL uyarı kendi programında çalıştığında, bir işin parçası olarak değil. Karşı system.lakeflow.jobssorgulama yaparken a LEFT JOIN kullanın. 906851285941474
task_key dize İş içindeki görev için referans anahtarı. Birleştirir task_keysystem.lakeflow.job_tasks. NULL uyarı kendi programında çalıştığında, bir işin parçası olarak değil. Karşı system.lakeflow.job_taskssorgulama yaparken a LEFT JOIN kullanın. evaluate_alert
alert_run_id dize Uyarı değerlendirme çalışmasının ID'si. 4104302562320643
evaluated_state dize Uyarının değerlendirilen durumu. Olası değerler OK, TRIGGEREDve ERROR. TRIGGERED
evaluated_source_result struct Değerlendirme tarafından üretilen kaynak değerini temsil eden bir yapı. {
double_value: 1.25
}
evaluated_threshold_result struct Değerlendirmedeki eşik değerini veya uyarı yapılandırmasında belirlenen statik değeri temsil eden bir yapı. {
double_value: 1.25
}
error_code dize Değerlendirme hatayla başarısız olursa hata kodu. INTERNAL_ERROR
error_message dize Değerlendirme hatayla başarısız olursa kullanıcı tarafından görülebilir hata mesajı. Query execution failed
notified_subscriptions Dizi Başarılı şekilde bilgilendirilen abonelerin bir dizisi. Her abone, bir kullanıcı e-posta adresi veya bildirim varış kimliği ile tanımlanır. [
{
user_email: example@databricks.com,
destination_id: null
}
]
failed_subscriptions Dizi Bildirimleri gönderilemeyen abonelerin bir dizisi. Her abone, bir kullanıcı e-posta adresi veya bildirim varış kimliği ile tanımlanır. [
{
user_email: example@databricks.com,
destination_id: null
}
]
start_time timestamp Değerlendirmenin başladığı zaman. Zaman dilimi bilgisi, değerin sonunda UTC'yi +00:00 temsil ederek kaydedilir. 2023-01-01T01:01:01.123+00:00
end_time timestamp Değerlendirmenin bittiği zaman. Zaman dilimi bilgisi, değerin sonunda UTC'yi +00:00 temsil ederek kaydedilir. 2023-01-01T01:01:01.123+00:00

Örnek sorgulamalar

Aşağıdaki örnek sorgular, uyarı yapılandırması ve değerlendirme geçmişini analiz etmenin yaygın yollarını göstermektedir. Her sorgu, uyarı ve çalışma alanı kimlikleri için adlandırılmış parametre işaretleyicileri kullanır, bu yüzden sorgu çalıştırıldığında değerler sorulur.

Bir uyarı için en güncel değerlendirmeyi bulun

Bu sorgu, belirli bir uyarının en son yapılandırmasını en son değerlendirmesi ile birlikte döndürür.

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;

Son yedi günde en çok tetiklenen uyarıları bul

Bu sorgu, son yedi gün içinde bir çalışma alanında her uyarının kaç kez tetiklendiğini sayar.

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;

Bir uyarının durumunun zamanla nasıl değiştiğini takip edin

Bu sorgu, son 30 gün içinde belirli bir uyarı için değerlendirilen her eyaletin günlük sayısını özetlemektedir. Uyarı güvenilirliğini izleyen bir gösterge paneli oluşturmak için kullanın.

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;

Bir çalışma alanında aktif uyarıları listele

Bu sorgu, her uyarının en son yapılandırmasını döndürür; ancak bu uyarılar bir çalışma alanında silinmemiş ve duraklatmamıştır.

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