Bagikan melalui


Migrasi dari OpenCensus Python SDK dan pengekspor OpenCensus Azure Monitor untuk Python ke Azure Monitor OpenTelemetry Python Distro

Catatan

OpenCensus Python SDK tidak digunakan lagi, tetapi Microsoft mendukungnya hingga penghentian pada 30 September 2024. Kami sekarang merekomendasikan penawaran Python berbasis OpenTelemetry dan memberikan panduan migrasi.

Ikuti langkah-langkah ini untuk memigrasikan aplikasi Python ke Distro OpenTelemetry Azure Monitor Application Insights.

Peringatan

  • Blog OpenCensus "Cara Bermigrasi ke OpenTelemetry" tidak berlaku untuk pengguna Azure Monitor.
  • Shim OpenTelemetry OpenCensus tidak direkomendasikan atau didukung oleh Microsoft.
  • Berikut ini menguraikan satu-satunya paket migrasi untuk pelanggan Azure Monitor.

Langkah 1: Hapus instalan pustaka OpenCensus

Hapus instalan semua pustaka yang terkait dengan OpenCensus, termasuk semua paket Pypi yang dimulai dengan opencensus-*.

pip freeze | grep opencensus | xargs pip uninstall -y

Langkah 2: Hapus OpenCensus dari kode Anda

Hapus semua instans OpenCensus SDK dan pengekspor OpenCensus Azure Monitor dari kode Anda.

Periksa pernyataan impor yang dimulai dengan opencensus untuk menemukan semua integrasi, eksportir, dan instans OpenCensus API/SDK yang harus dihapus.

Berikut ini adalah contoh pernyataan impor yang harus dihapus.

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

Langkah 3: Biasakan diri Anda dengan OPENTelemetry Python API/SDK

Dokumentasi berikut memberikan pengetahuan prasyarat tentang API/SDK Python OpenTelemetry.

  • Dokumentasi OpenTelemetry Python
  • Dokumentasi Azure Monitor Distro tentang konfigurasi dan telemetri

Catatan

OpenTelemetry Python dan OpenCensus Python memiliki permukaan API, kemampuan autocollection, dan instruksi onboarding yang berbeda.

Langkah 4: Siapkan Distro OpenTelemetry Azure Monitor

Ikuti halaman memulai untuk onboard ke Distro OpenTelemetry Azure Monitor.

Perubahan dan batasan

Perubahan dan batasan berikut mungkin ditemui saat bermigrasi dari OpenCensus ke OpenTelemetry.

Dukungan Python < 3.7

Solusi pemantauan berbasis Python OpenTelemetry hanya mendukung Python 3.7 dan yang lebih tinggi, tidak termasuk Python versi 2.7, 3.4, 3.5, dan 3.6 yang didukung sebelumnya dari OpenCensus. Kami menyarankan peningkatan untuk pengguna yang berada di versi Python yang lebih lama karena, pada penulisan dokumen ini, versi tersebut telah mencapai akhir masa pakai. Pengguna yang bersikeras untuk tidak meningkatkan mungkin masih menggunakan solusi OpenTelemetry, tetapi mungkin menemukan perilaku tak terduga atau melanggar yang tidak didukung. Bagaimanapun, versi opencensus-ext-azure terakhir yang didukung selalu ada, dan masih berfungsi untuk versi tersebut, tetapi tidak ada rilis baru yang dibuat untuk proyek tersebut.

Konfigurasi

OpenCensus Python menyediakan beberapa opsi konfigurasi yang terkait dengan pengumpulan dan ekspor telemetri. Anda mencapai konfigurasi yang sama, dan banyak lagi, dengan menggunakan API dan SDK Python OpenTelemetry. OpenTelemetry Azure monitor Python Distro lebih merupakan toko serba ada untuk kebutuhan pemantauan yang paling umum untuk aplikasi Python Anda. Karena Distro merangkum API/SDk OpenTelemetry, beberapa konfigurasi untuk kasus penggunaan yang lebih jarang mungkin saat ini tidak didukung untuk Distro. Sebagai gantinya, Anda dapat memilih untuk onboard ke pengekspor OpenTelemetry monitor Azure, yang, dengan API/SDK OpenTelemetry, harus dapat sesuai dengan kebutuhan pemantauan Anda. Beberapa konfigurasi ini meliputi:

  • Penyebar kustom
  • Sampel kustom
  • Menambahkan pembaca rentang/prosesor log/metrik tambahan

Kohesi dengan Azure Functions

Untuk menyediakan kemampuan pelacakan terdistribusi untuk aplikasi Python yang memanggil aplikasi Python lainnya dalam fungsi Azure, paket opencensus-extension-azure-functions disediakan untuk memungkinkan grafik terdistribusi yang terhubung.

Saat ini, solusi OpenTelemetry untuk Azure Monitor tidak mendukung skenario ini. Sebagai solusinya, Anda dapat menyebarluaskan konteks pelacakan secara manual di aplikasi fungsi Azure Anda seperti yang ditunjukkan dalam contoh berikut.

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)

Ekstensi dan eksportir

OpenCensus SDK menawarkan cara untuk mengumpulkan dan mengekspor telemetri melalui integrasi OpenCensus dan eksportir masing-masing. Di OpenTelemetry, integrasi sekarang disebut sebagai instrumentasi, sedangkan eksportir telah tetap dengan terminologi yang sama. Instrumentasi dan eksportir OpenTelemetry Python adalah superset dari apa yang disediakan di OpenCensus, jadi dalam hal cakupan dan fungsionalitas pustaka, pustaka OpenTelemetry adalah peningkatan langsung. Adapun Distro OpenTelemetry Azure Monitor, ia hadir dengan beberapa instrumentasi OpenTelemetry Python yang populer di luar kotak sehingga tidak ada kode tambahan yang diperlukan. Microsoft sepenuhnya mendukung instrumentasi ini.

Adapun instrumentasi OpenTelemetry Python lainnya yang tidak termasuk dalam daftar ini, pengguna mungkin masih melengkapinya secara manual. Namun, penting untuk dicatat bahwa stabilitas dan perilaku tidak dijamin atau didukung dalam kasus tersebut. Oleh karena itu, gunakan sesuai kebijaksanaan Anda sendiri.

Jika Anda ingin menyarankan pustaka instrumentasi komunitas untuk kami sertakan dalam distro, posting, atau pilih ide kami di komunitas umpan balik kami. Untuk pengekspor, distro OpenTelemetry Azure Monitor dilengkapi dengan pengekspor OpenTelemetry Azure Monitor. Jika Anda ingin menggunakan eksportir lain juga, Anda dapat menggunakannya dengan distro, seperti dalam contoh ini.

TelemetryProcessors

Prosesor telemetri OpenCensus Python adalah mekanisme yang kuat di mana pengguna yang diizinkan untuk memodifikasi telemetri mereka sebelum dikirim ke pengekspor. Tidak ada konsep TelemetryProcessors di dunia OpenTelemetry, tetapi ada API dan kelas yang dapat Anda gunakan untuk mereplikasi perilaku yang sama.

Mengatur Nama Peran Cloud dan Instans Peran Cloud

Ikuti instruksi di sini untuk cara mengatur nama peran cloud dan instans peran cloud untuk telemetri Anda. OpenTelemetry Azure Monitor Distro secara otomatis mengambil nilai dari variabel lingkungan dan mengisi bidang masing-masing.

Memodifikasi rentang dengan SpanProcessors

Segera hadir.

Memodifikasi metrik dengan Tampilan

Segera hadir.

Penghitung Performa

Pengekspor OpenCensus Python Azure Monitor secara otomatis mengumpulkan metrik terkait sistem dan performa yang disebut penghitung kinerja. Metrik ini muncul di performanceCounters instans Application Insights Anda. Di OpenTelemetry, kami tidak lagi mengirim metrik ini secara eksplisit ke performanceCounters. Metrik yang terkait dengan permintaan masuk/keluar dapat ditemukan di bawah metrik standar. Jika Anda ingin OpenTelemetry untuk mengotomatiskan metrik terkait sistem, Anda dapat menggunakan instrumentasi metrik sistem eksperimental, yang dikontribusikan oleh komunitas OpenTelemetry Python. Paket ini bersifat eksperimental dan tidak didukung secara resmi oleh Microsoft.

Dukungan

Untuk meninjau langkah-langkah pemecahan masalah, opsi dukungan, atau untuk memberikan umpan balik OpenTelemetry, lihat Pemecahan masalah, dukungan, dan umpan balik OpenTelemetry untuk Azure Monitor Application Insights.