Python'da OpenTelemetry sorunlarını giderme
Bu makalede Python'da OpenTelemetry sorunlarının nasıl giderılacağı açıklanır.
Sorun giderme denetim listesi
1. Adım: Tanılama günlüğünü etkinleştirme
Microsoft Azure İzleyici Exporter, iç günlüğü için Python standart günlük kitaplığını kullanır. OpenTelemetry API'sine ve Azure İzleyici Dışarı Aktarma günlüklerine düzensiz etkinlik için veya ERROR
önem düzeyi WARNING
atanır. Önem INFO
derecesi, düzenli veya başarılı etkinlik için kullanılır.
Varsayılan olarak, Python günlük kitaplığı önem düzeyini olarak WARNING
ayarlar. Bu nedenle, bu önem derecesi ayarı altındaki günlükleri görmek için önem derecesi düzeyini değiştirmeniz gerekir. Aşağıdaki örnek kod, tüm önem derecelerinin günlüklerinin konsola ve bir dosyaya nasıl çıkış yapılacağını gösterir:
...
import logging
logging.basicConfig(format = "%(asctime)s:%(levelname)s:%(message)s", level = logging.DEBUG)
logger = logging.getLogger(__name__)
file = logging.FileHandler("example.log")
stream = logging.StreamHandler()
logger.addHandler(file)
logger.addHandler(stream)
...
2. Adım: Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme
Application Insights SDK'ları ve aracıları, alım uç noktalarımızda REST çağrıları olarak alınabilmek için telemetri gönderir. Web sunucunuzdan veya uygulama ana bilgisayarınızdan alma hizmeti uç noktalarına bağlantıyı test etmek için cURL komutlarını veya PowerShell'den ham REST isteklerini kullanın. Daha fazla bilgi için bkz. Azure İzleyici Application Insights'ta eksik uygulama telemetrisi sorunlarını giderme.
3. Adım: Yinelenen telemetriden kaçının
Yinelenen telemetri genellikle birden çok işlemci veya dışarı aktarma örneği oluşturursanız ortaya çıkar. Her telemetri sütunu (günlükler, ölçümler ve dağıtılmış izleme) için aynı anda yalnızca bir dışarı aktarıcı ve işlemci çalıştırdığınızdan emin olun.
Aşağıdaki bölümlerde yinelenen telemetriye neden olabilecek senaryolar açıklanmaktadır.
Azure İşlevleri'de yinelenen izleme günlükleri
Application Insights'ta her izleme günlüğü için bir çift girdi görürseniz, büyük olasılıkla aşağıdaki günlük izleme türlerini etkinleştirmiş olursunuz:
- Azure İşlevleri'de yerel günlük izlemesi
- Dağıtım
azure-monitor-opentelemetry
içindeki günlüğe kaydetme izlemesi
Yinelemeyi önlemek için dağıtımın günlüğünü devre dışı bırakabilir, ancak yerel günlük izlemesini Azure İşlevleri etkin durumda bırakabilirsiniz. Bunu yapmak için ortam değişkenini OTEL_LOGS_EXPORTER
olarak None
ayarlayın.
"Always On" Azure İşlevleri yinelenen telemetri
Azure İşlevleri'daki Always On ayarı Açık olarak ayarlanırsa, Azure İşlevleri her çalıştırma tamamlandıktan sonra bazı işlemlerin arka planda çalışmasını sağlar. Örneğin, her seferinde çağıran configure_azure_monitor
beş dakikalık bir zamanlayıcı işlevine sahip olduğunuzu varsayalım. 20 dakika sonra, aynı anda çalışan dört ölçüm dışarı aktarıcınız olabilir. Bu durum yinelenen ölçüm telemetrinizin kaynağı olabilir.
Bu durumda AlwaysOn ayarını Kapalı olarak ayarlayın veya her configure_azure_monitor
çağrı arasındaki sağlayıcıları el ile kapatmayı deneyin. Her sağlayıcıyı kapatmak için, aşağıdaki kodda gösterildiği gibi her geçerli ölçüm, izleyici ve günlükçü sağlayıcısı için kapatma çağrılarını çalıştırın:
get_meter_provider().shutdown()
get_tracer_provider().shutdown()
get_logger_provider().shutdown()
Azure Çalışma Kitapları ve Jupyter Not Defterleri
Azure Çalışma Kitapları ve Jupyter Not Defterleri, ihracatçı işlemlerinin arka planda çalışmasını sürdürebilir. Yinelenen telemetriyi önlemek için, daha fazla çağrı configure_azure_monitor
yapmadan önce önbelleği temizleyin.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin