OpenCensus Python SDK'sından ve Azure İzleyici OpenCensus exporter for Python'dan Azure İzleyici OpenTelemetry Python Distro'ya geçiş
Not
OpenCensus Python SDK'sı kullanımdan kaldırılmıştır, ancak Microsoft 30 Eylül 2024'te kullanımdan kaldırılana kadar bu SDK'yı destekler. Şimdi OpenTelemetry tabanlı Python teklifini öneririz ve geçiş kılavuzu sağlarız.
Python uygulamalarını Azure İzleyici Application Insights OpenTelemetry Distro'ya geçirmek için bu adımları izleyin.
Uyarı
- OpenCensus "OpenTelemetry'ye Geçiş" blogu Azure İzleyici kullanıcıları için geçerli değildir.
- OpenTelemetry OpenCensus dolgusu Microsoft tarafından önerilmez veya desteklenmez.
- Aşağıda, Azure İzleyici müşterileri için tek geçiş planı özetlenmektedir.
1. Adım: OpenCensus kitaplıklarını kaldırma
ile başlayan tüm Pypi paketleri de dahil olmak üzere OpenCensus ile opencensus-*
ilgili tüm kitaplıkları kaldırın.
pip freeze | grep opencensus | xargs pip uninstall -y
2. Adım: Kodunuzdan OpenCensus'ı kaldırma
OpenCensus SDK'sının ve Azure İzleyici OpenCensus dışarı aktarma işleminin tüm örneklerini kodunuzdan kaldırın.
OpenCensus API/SDK'sının kaldırılması gereken tüm tümleştirmelerini, dışarı aktarmalarını ve örneklerini bulmak için ile başlayan opencensus
içeri aktarma deyimlerini denetleyin.
Aşağıda, kaldırılması gereken içeri aktarma deyimleri örnekleri verilmiştir.
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation as aggregation_module
from opencensus.stats import measure as measure_module
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
from opencensus.ext.azure.log_exporter import AzureLogHandler
3. Adım: OpenTelemetry Python API'leri/SDK'ları hakkında bilgi edinin
Aşağıdaki belgelerde OpenTelemetry Python API'leri/SDK'ları hakkında önkoşul bilgisi sağlanmaktadır.
- OpenTelemetry Python belgeleri
- Yapılandırma ve telemetri ile ilgili Azure İzleyici Dağıtımı belgeleri
Not
OpenTelemetry Python ve OpenCensus Python farklı API yüzeylerine, otomatik toplama özelliklerine ve ekleme yönergelerine sahiptir.
4. Adım: Azure İzleyici OpenTelemetry Dağıtımı'nı ayarlama
Azure İzleyici OpenTelemetry Distro'ya eklemek için başlarken sayfasını izleyin.
Değişiklikler ve sınırlamalar
OpenCensus'tan OpenTelemetry'ye geçirilirken aşağıdaki değişiklikler ve sınırlamalarla karşılaşılabilir.
Python < 3.7 desteği
OpenTelemetry'nin Python tabanlı izleme çözümleri, OpenCensus'tan daha önce desteklenen Python sürümleri 2.7, 3.4, 3.5 ve 3.6 hariç yalnızca Python 3.7 ve üzeri sürümleri destekler. Bu belgeyi yazarken bu sürümlerin kullanım süresi doldığından Python'ın eski sürümlerinde olan kullanıcılar için yükseltme yapmanızı öneririz. Yükseltme yapma konusunda kararlı olan kullanıcılar OpenTelemetry çözümlerini kullanmaya devam edebilir, ancak desteklenmeyen beklenmeyen veya hataya neden olan davranışlar bulabilir. Her durumda, opencensus-ext-azure'ın desteklenen son sürümü her zaman vardır ve bu sürümler için çalışmaya devam eder, ancak bu proje için yeni sürüm yapılmaz.
Yapılandırmalar
OpenCensus Python, telemetrinin toplanması ve dışarı aktarılmasıyla ilgili bazı yapılandırma seçenekleri sağladı. OpenTelemetry Python API'lerini ve SDK'sını kullanarak aynı yapılandırmaları ve daha fazlasını elde edebilirsiniz. OpenTelemetry Azure İzleyici Python Distro, Python uygulamalarınız için en yaygın izleme gereksinimlerine yönelik tek noktadan daha fazlasıdır. Distro OpenTelemetry API'lerini/SDk'yi kapsüllediğinden, daha yaygın olmayan kullanım örnekleri için bazı yapılandırmalar şu anda Distro için desteklenmeyebilir. Bunun yerine, OpenTelemetry API'leri/SDK'ları ile izleme gereksinimlerinize uygun olması gereken Azure İzleyici OpenTelemetry dışarı aktarıcısına eklemeyi tercih edebilirsiniz. Bu yapılandırmalardan bazıları şunlardır:
- Özel yayıcılar
- Özel örnekleyiciler
- Ek span/günlük işlemcileri/ölçüm okuyucuları ekleme
Azure İşlevleri ile uyum
Bir Azure işlevi içindeki diğer Python uygulamalarını çağıran Python uygulamaları için dağıtılmış izleme özellikleri sağlamak amacıyla, bağlı bir dağıtılmış graf için opencensus-extension-azure-functions paketi sağlanmıştır.
Şu anda Azure İzleyici için OpenTelemetry çözümleri bu senaryoyu desteklemez. Geçici bir çözüm olarak, aşağıdaki örnekte gösterildiği gibi Azure işlevleri uygulamanızda izleme bağlamını el ile yayabilirsiniz.
from opentelemetry.context import attach, detach
from opentelemetry.trace.propagation.tracecontext import \
TraceContextTextMapPropagator
# Context parameter is provided for the body of the function
def main(req, context):
functions_current_context = {
"traceparent": context.trace_context.Traceparent,
"tracestate": context.trace_context.Tracestate
}
parent_context = TraceContextTextMapPropagator().extract(
carrier=functions_current_context
)
token = attach(parent_context)
...
# Function logic
...
detach(token)
Uzantılar ve ihracatçılar
OpenCensus SDK sırasıyla OpenCensus tümleştirmeleri ve ihracatçıları aracılığıyla telemetri toplamak ve dışarı aktarmak için yollar sundu. OpenTelemetry'de tümleştirmeler artık izlemeler olarak adlandırılırken, ihracatçılar aynı terminolojiyi kullanmaya devam etti. OpenTelemetry Python izlemeleri ve dışarı aktarıcıları, OpenCensus'ta sağlananların üst kümesidir, bu nedenle kitaplık kapsamı ve işlevselliği açısından OpenTelemetry kitaplıkları doğrudan yükseltmedir. Azure İzleyici OpenTelemetry Distro'ya gelince, ek kod gerekmemesi için popüler OpenTelemetry Python izlemelerinden bazılarıyla birlikte gelir. Microsoft bu izlemeleri tam olarak destekler.
Bu listeye dahil olmayan diğer OpenTelemetry Python izlemelerine gelince, kullanıcılar bunlarla el ile izleme yapabilir. Ancak kararlılık ve davranışın bu durumlarda garantilenmediğini veya desteklenmediğini unutmayın. Bu nedenle, bunları kendi takdirinize bağlı olarak kullanın.
Dağıtımımıza dahil etmemiz için bir topluluk izleme kitaplığı önermek isterseniz geri bildirim topluluğumuzda bir fikir gönderin veya oy verin. Dışarı aktarma yapanlar için Azure İzleyici OpenTelemetry dağıtımı, Azure İzleyici OpenTelemetry vereni ile birlikte gelir. Diğer ihracatçıları da kullanmak isterseniz, bu örnekte olduğu gibi dağıtımla birlikte kullanabilirsiniz.
TelemetryProcessors
OpenCensus Python telemetri işlemcileri , kullanıcıların vermeciye gönderilmeden önce telemetrilerini değiştirmelerine izin veren güçlü bir mekanizmadır. OpenTelemetry dünyasında Telemetriİşlemcileri kavramı yoktur, ancak aynı davranışı çoğaltmak için kullanabileceğiniz API'ler ve sınıflar vardır.
Bulut Rolü Adını ve Bulut Rolü Örneğini Ayarlama
Telemetriniz için bulut rolü adını ve bulut rolü örneğini ayarlamaya yönelik buradaki yönergeleri izleyin. OpenTelemetry Azure İzleyici Dağıtımı, ortam değişkenlerinden değerleri otomatik olarak getirir ve ilgili alanları doldurur.
SpanProcessors ile span'ları değiştirme
Çok yakında sunulacak.
Görünümler ile ölçümleri değiştirme
Çok yakında sunulacak.
Performans Sayaçları
OpenCensus Python Azure İzleyici vereni, performans sayaçları olarak adlandırılan sistem ve performansla ilgili ölçümleri otomatik olarak topladı. Bu ölçümler Application Insights örneğinizde görünür performanceCounters
. OpenTelemetry'de artık bu ölçümleri açıkça adresine performanceCounters
göndermeyiz. Gelen/giden isteklerle ilgili ölçümler standart ölçümler altında bulunabilir. OpenTelemetry'nin sistemle ilgili ölçümleri otomatik olarak toplamasını istiyorsanız OpenTelemetry Python topluluğunun katkılarıyla deneysel sistem ölçümleri izlemesini kullanabilirsiniz. Bu paket deneyseldir ve Microsoft tarafından resmi olarak desteklenmez.
Destek
Sorun giderme adımlarını, destek seçeneklerini gözden geçirmek veya OpenTelemetry geri bildirimi sağlamak için bkz . Azure İzleyici Application Insights için OpenTelemetry sorun giderme, destek ve geri bildirim.