Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sunucusuz log teslimatı, uygulama loglarını sunucusuz işlerden bir Unity Catalog volume’a yazar. Workspace yöneticileri, ekiplerin günlükleri tutabilmesi ve gözlemlenebilirlik araçlarıyla işleyebilmesi için çalışma alanı için bir hedef konum yapılandırır. Loglar, iş tamamlandıktan sonra asenkron olarak iletilir. Teslimat birkaç dakika sürebilir ve işlem ile yükleme süresine göre değişir.
Important
Bu özellik Beta sürümündedir. Bunu kullanmak için, bir çalışma alanı yöneticisinin Unity Kataloğu hacimlerine Sunucusuz günlük teslimatınıÖnizlemeler sayfasından açması gerekir. Bkz. Azure Databricks önizlemelerini yönetme.
Requirements
- Sunucusuz hesaplama ve Unity Catalog etkin bir çalışma alanı.
- Sunucusuz ortam sürümü 5 veya üzeri.
- Log teslimatını yapılandırmak için workspace admin rolü gerekir. Bkz. Bir kullanıcıya çalışma alanı yöneticisi rolünü atayın.
- Unity Catalog birimleri için sunucusuz günlük teslimi önizlemesi çalışma alanı için etkinleştirildi. Zaten açık olabilir. Eğer devre dışıysa, bir çalışma alanı yöneticisi bunu Önizlemeler sayfasında etkinleştirebilir. Önizlemeyi etkinleştirmek yapılandırmayı kullanılabilir hale getirir; teslimatı başlatmaz.
- Bir hedef birimi. Teslimatı yapılandıran yöneticinin katalogda
USE CATALOG, şemadaUSE SCHEMAve birimdeREAD VOLUMEileWRITE VOLUMEizinlerine ihtiyaç duyar. Bkz. Unity Kataloğu birimleri için ayrıcalıklar.
Note
Teslimatı yalnızca kısıtlı erişime sahip güvenilir bir birime yapılandırın. Teslim edilen loglar, kullanıcı e-postaları, depolama yolları, yığın izleri, iç tanımlayıcılar ve geçici imzalı URL'ler gibi hassas bilgiler içerebilir. Kayıtların gizli bilgilerden arınmış olacağı garanti değildir.
Hedefe erişimi olan kullanıcılar, teslim edilen günlükleri, diğer kullanıcıların görevlerinden olan günlükler de dahil olmak üzere okuyabilir. Volume erişimini buna göre kısıtlayın.
Log teslimatını etkinleştir
Bir çalışma alanı yöneticisi, çalışma alanı için log teslimini etkinleştirmelidir.
- Kullanıcı menünüzden Ayarlar'ı açın.
- Çalışma alanı yöneticisi bölümünde İşlem'e tıklayın.
- Log teslimatı bölümünde, Sunucusuz log teslimatını açın.
-
Log teslimatını yapılandır bölümünde, Birim yolunu girin, örneğin
/Volumes/observability/production/serverless_logs, veya klasör simgesine tıklayarak birimleri gezinin. - Kaydet'e tıklayın. Varış noktasını kaydetmek, teslimatı mümkün kılar.
Bu ayar çalışma alanı seviyesinde uygulanır. Her işi ayrı ayrı yapılandırmanıza gerek yok.
Teslim edilen logları okuyun
Uygulama çıktısı, kullanıcı tanımlı fonksiyonlar (UDF) dahil olmak üzere kullanıcı kodundan standart çıktı ve standart hata içerir. Catalog Explorer'ı kullanarak hedef birimi inceleyin ve teslim edilen dosyaları inceleyin. Unity Catalog hacimlerinde dosyalarla çalışma bölümüne bakın.
Log teslimatı, küme metrikleri veya sorgu profilleri sağlamaz. İş çalıştırma sayfasını kullanarak çalışma durumunu ve performansını uygulama kayıtlarıyla birlikte inceleyin. Bkz. Lakeflow görevlerini izleme.
Teslim edilen logları SQL ile sorgula
read_files kullanarak teslim edilen metin dosyalarını sorgulayın. Bu örnekteki birim yolunu hedefinizle değiştirin. Kayıtları okumak için katalogda USE SCHEMA, şemada READ VOLUME ve birimde USE CATALOG iznine ihtiyacınız var.
Dosya yolundan iş ve çalıştırma tanımlayıcılarını çıkaran ve her log çıktı satırını tutan geçici bir görünüm oluşturun:
CREATE OR REPLACE TEMPORARY VIEW serverless_job_logs AS
SELECT
regexp_extract(_metadata.file_path, '/job_id=([^/]+)/', 1) AS job_id,
regexp_extract(_metadata.file_path, '/job_run_id=([^/]+)/', 1) AS job_run_id,
regexp_extract(_metadata.file_path, '/task_run_id=([^/]+)/', 1) AS task_run_id,
_metadata.file_name AS file_name,
value AS log_line
FROM read_files(
'/Volumes/observability/production/serverless_logs/',
format => 'text'
);
İş çalıştırmalarındaki hata içeren satırları bulun:
SELECT job_id, job_run_id, task_run_id, file_name, log_line
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%';
En çok hata satırına sahip işleri belirleyin:
SELECT
job_id,
count(*) AS error_lines,
count(DISTINCT job_run_id) AS affected_runs
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%'
GROUP BY job_id
ORDER BY error_lines DESC;
Bu sorgular, ERROR tam metnini arar. Filtreyi uygulamanızın kayıt formatına uygun ayarlayın. Bakınız read_files tablo değerli fonksiyon.
Varış noktasını değiştirin veya teslimatı devre dışı bırakın
Hedefi değiştirmek için Ayarlar > Compute > Log teslimatı açın, hacim adının yanındaki kalem simgesine tıklayın, yeni bir yol girin veya göz atın ve Kaydet'e tıklayın. Bir hedefi kaydetmek, teslimat devre dışı bırakılmış olsa bile teslimatı mümkün kılar.
Teslimatı devre dışı bırakmak için Ayarlar > Compute > Log teslimatı'nı açın ve Sunucusuz Log teslimatını kapatın. Ayar, hedefi korur, böylece başka bir birim seçmeden teslim etmeyi tekrar etkinleştirebilirsiniz. Dağıtımı devre dışı bırakmak, birime zaten yazılmış dosyaları kaldırmaz. Bu dosyaların erişimini ve saklanmasını ayrı ayrı yönetin.
Eksik günlüklerde sorun giderme
İş tamamlandıktan sonra günlükler görünmüyorsa:
- >'nin Ayarlar > Compute Günlüğü teslimatı altında etkin olup olmadığını kontrol edin. Önizlemeyi etkinleştirmek sadece teslimatı başlatmaz.
- Yapılandırılmış birimin var olup olmadığını ve teslimatı yapılandıran yöneticinin gerekli izinleri koruyup korumadığını kontrol edin.
- İşin sunucusuz hesaplama kullandığını ve uygulama çıktısı ürettiğini doğrulayın. İş tamamlandıktan sonra asenkron teslimat için birkaç dakika bekleyin. İşleme ve yükleme süresi teslimatı geciktirebilir.
Klasik Compute logu teslimatı için bkz. Compute log delivery.