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 İzleyiciUygulaması Analizler OpenTelemetry Distro'ya geçirmek için bu adımları izleyin.

Uyarı

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.

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 işlevleriyle 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 Uygulama Analizler örneğinizde görünürperformanceCounters. OpenTelemetry'de artık bu ölçümleri açıkça adresine performanceCountersgö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.

Sorun giderme

Çalışmıyor musunuz? ASP.NET Core için sorun giderme sayfasına göz atın.

Destek

Destek seçeneklerini keşfetmek için istediğiniz dil için bir sekme seçin.

  • Azure desteği sorunlar için bir Azure desteği bileti açın.
  • OpenTelemetry sorunları için doğrudan OpenTelemetry .NET topluluğuna başvurun.
  • Azure İzleyici Dışarı Aktarma ile ilgili açık sorunların listesi için GitHub Sorunları Sayfasına bakın.

OpenTelemetry geri bildirimi

Geri bildirim sağlamak için: