Dayanıklı Görev SDK'larında Tanılama

Dayanıklı Görev SDK'larıyla ilgili sorunları tanılama seçenekleriniz Azure Container Apps, Azure Kubernetes Service kümesi veya Azure App Service uygulaması gibi kullandığınız Azure hesaplamaya bağlıdır. Düzenleme durumu ve hatalarıyla ilgili tam görünürlük elde etmek için hem Application Insights'ı hem de Dayanıklı Görev Zamanlayıcı izleme panosunu etkinleştirmenizi öneririz.

Uygulama Öngörüleri

Application Insights , Dayanıklı Görev SDK'larında çalışan uygulamalarınızı izlemenin önerilen yoludur. Azure portalında Application Insights Analytics aracını kullanarak bu izleme olaylarını bulabilir ve sorgulayabilirsiniz.

Bir düzenleme örneğinin her yaşam döngüsü olayı, Application Insights'taki izleme koleksiyonuna bir izleme olayı yazar. Belirli orkestrasyonları filtrelemek ve sorgulamak için bu olaylardaki özel boyutları (örneğin prop__instanceId, prop__name ve prop__runtimeStatus gibi) kullanın.

Bilgi İşlem Hizmeti Tanılama günlüğü yönergeleri
Azure Konteyner Uygulamaları Azure Container Apps'te Log Analytics ile günlükleri izleyin
Azure App Service Azure App Service'te uygulamalar için tanılama günlüğünü etkinleştir
Azure Kubernetes Service Azure Kubernetes Service'i izleme

Örnek sorgular

Application Insights etkinleştirildikten sonra düzenleme davranışını araştırmak için Günlükler'deki şu KQL sorgularını kullanın:

Başarısız düzenlemeleri bulma:

traces
| where customDimensions.prop__runtimeStatus == "Failed"
| project timestamp, customDimensions.prop__instanceId, customDimensions.prop__name, message
| order by timestamp desc
| take 50

Orkestrasyon süresi ada göre (son 24 saat):

traces
| where timestamp > ago(24h)
| where customDimensions.prop__runtimeStatus == "Completed"
| extend duration = todatetime(customDimensions.prop__completedTime) - todatetime(customDimensions.prop__createdTime)
| summarize avg(duration), max(duration), count() by tostring(customDimensions.prop__name)

OpenTelemetry ile dağıtılmış izleme

Dayanıklı Görev SDK'ları OpenTelemetry dağıtılmış izlemeyi destekler ve bu sayede düzenleme, etkinlik ve alt düzenlemelerde bağıntılı aralıklar olarak uçtan uca görünürlük sağlar. İzlemeleri Application Insights, Jaeger veya Zipkin gibi OpenTelemetry uyumlu herhangi bir arka uca aktarabilirsiniz.

Desteklenen tüm dillerde kod örnekleri içeren kurulum yönergeleri için bkz. OpenTelemetry ve Dayanıklı Görev Zamanlayıcı ile dağıtılmış izleme.

Dayanıklı Görev Zamanlayıcı izleme panosu

Dayanıklı Görev Zamanlayıcı panosu düzenleme durumunu izlemenize, girişleri/çıkışları incelemenize, yürütme zaman çizelgelerini görüntülemenize ve düzenlemeleri yönetmenize (başlangıç, duraklatma, sürdürme, sonlandırma) olanak tanır. Hem yerel öykünücü hem de Azure tarafından barındırılan zamanlayıcılarla kullanılabilir.

Panoya erişme

Tam kurulum ve kullanım yönergeleri için Dayanıklı Görev Zamanlayıcı panosunu kullanarak düzenlemeleri hata ayıklama ve yönetme başlığına bakın.

Yaygın sorunlar

Semptom Olası neden Çözünürlük
Düzenleme "Çalışıyor" içinde takıldı Etkinlik işlenmeyen bir özel durum oluşturdu ve yeniden deneme ilkesi yapılandırılmadı Özel durum ayrıntıları için Application Insights'a bakın; yeniden deneme ilkesi ekleyin veya orchestrator'da try/catch kullanın
Etkinlik süresiz olarak yeniden denemeye devam ediyor Yeniden deneme ilkesinin sınırı yok maxNumberOfAttempts Yeniden deneme ilkesi yapılandırmanızda en yüksek yeniden deneme sayısını ayarlama
Orchestrasyon başlatılmıyor Çalışan doğru görev hub'ını yoklamıyor bağlantı dizesi görev hub'ı adının zamanlayıcı kaynağıyla eşleştiğinden emin olun
Application Insights'ta iz yok Bağlantı dizesi yapılandırılmadı veya SDK telemetri yaymıyor APPLICATIONINSIGHTS_CONNECTION_STRING'nin ayarlandığını doğrulayın; OpenTelemetry Microsoft.DurableTask kaynağının kayıtlı olduğundan emin olun
Dashboard, hiç orkestrasyon göstermiyor. Rol ataması eksik veya yanlış görev hub'ı seçildi Durable Task Data Contributor rolüne sahip olduğunuzu onaylayın; pano URL'sinde görev hub adını kontrol edin
Düzenleme tamamlandı ama sonuç boş Geri döndürülen etkinlik null veya serileştirme başarısız oldu. Panonun geçmiş görünümünde etkinlik çıkışlarını inceleyin; serileştirici yapılandırmasını denetleyin

Sonraki Adımlar