Saat menjalankan layanan mikro Python di lingkungan terdistribusi, Anda memerlukan visibilitas menyeluruh terhadap permintaan yang melewati batas layanan. Agen SkyWalking Python secara otomatis menginstrumentasi lebih dari 30 library—termasuk Django, Flask, Redis, Kafka, dan MySQL—sehingga Anda dapat melaporkan data jejak ke Managed Service for OpenTelemetry dengan perubahan kode minimal.
Topik ini memandu Anda melalui proses instalasi agen, mendapatkan titik akhir, serta mengonfigurasi agen untuk melaporkan jejak.
Informasi latar belakang
Apache SkyWalking adalah sistem Pemantauan Kinerja Aplikasi (APM) dan pelacakan terdistribusi yang dirancang untuk layanan mikro, arsitektur cloud-native, serta kontainer seperti Docker, Kubernetes, dan Mesos. SkyWalking-Python adalah repositori agen Python resmi dari SkyWalking. Anda dapat menggunakan SkyWalking-Python untuk secara otomatis menginstrumentasi library pihak ketiga seperti Kafka, AIOHTTP, Redis, dan WebSocket.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal Python 3.7 atau versi yang lebih baru
Memiliki proyek Python tempat Anda ingin menambahkan pelacakan
Memiliki pip yang tersedia untuk menginstal paket
Instal agen SkyWalking Python:
pip install apache-skywalkingDapatkan titik akhir SkyWalking
Untuk menghubungkan agen ke Managed Service for OpenTelemetry, peroleh titik akhir dan token otentikasi dari Konsol.
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sebelah kiri, klik Cluster Configurations. Pada halaman yang muncul, klik tab Access point information.
Di bilah navigasi atas, pilih wilayah. Di bagian Cluster Information, aktifkan Show Token.
Atur parameter Client menjadi SkyWalking.
Di kolom Related Information, salin titik akhir dan token.

Jika aplikasi Anda berjalan di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.
Instrumentasi aplikasi Python Anda
Agen SkyWalking Python mendukung dua metode konfigurasi: konfigurasi dalam kode dan variabel lingkungan. Pilih metode yang sesuai dengan penerapan Anda.
Opsi 1: Konfigurasi dalam kode
Impor modul SkyWalking dan panggil config.init() dengan titik akhir, token, dan nama layanan Anda sebelum memulai agen.
from skywalking import agent, config
config.init()
agent.start()Ganti placeholder berikut dengan nilai aktual Anda:
| Placeholder | Deskripsi | Contoh |
|---|---|---|
<endpoint> | Titik akhir SkyWalking dari konsol | <your-endpoint> |
<auth-token> | Token otentikasi dari konsol | xxxxxxxxxxxx |
<your-service-name> | Nama untuk mengidentifikasi aplikasi Anda dalam jejak | my-python-app |
Opsi 2: Konfigurasi melalui variabel lingkungan
Atur variabel lingkungan berikut dan mulai agen dalam kode Anda tanpa meneruskan parameter.
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=<endpoint>
export SW_AGENT_AUTHENTICATION=<auth-token>
export SW_AGENT_NAME=<your-service-name>
export SW_AGENT_PROTOCOL=grpc
export SW_AGENT_LOG_REPORTER_ACTIVE=false
export SW_AGENT_METER_REPORTER_ACTIVE=falseKemudian mulai agen dalam kode Python Anda:
from skywalking import agent, config
config.init()
agent.start()Untuk kontainer Docker, tambahkan variabel lingkungan ke bagian environment pada file docker-compose.yaml Anda:
services:
my-app:
image: my-python-app
environment:
SW_AGENT_COLLECTOR_BACKEND_SERVICES: "<endpoint>"
SW_AGENT_AUTHENTICATION: "<auth-token>"
SW_AGENT_NAME: "my-python-app"
SW_AGENT_PROTOCOL: "grpc"
SW_AGENT_LOG_REPORTER_ACTIVE: "false"
SW_AGENT_METER_REPORTER_ACTIVE: "false"Setelah mengonfigurasi agen, restart aplikasi Anda untuk mulai melaporkan data jejak.
Referensi konfigurasi
Untuk informasi lebih lanjut tentang parameter opsional, lihat referensi konfigurasi Apache SkyWalking Python.
Kode contoh
Untuk contoh lengkap yang berfungsi, lihat repositori skywalking-demo di GitHub.
Aplikasi demo menggunakan Flask untuk menangani permintaan HTTP dan mengarahkannya antar layanan, dengan operasi database MySQL di sepanjang jalur tersebut. Setelah agen melaporkan data, Anda dapat melihat jejak lintas proses dan data pemantauan panggilan MySQL di Konsol Managed Service for OpenTelemetry.
FAQ
Method not found: skywalking.v3.LogReportService/collect
Managed Service for OpenTelemetry tidak mendukung pengumpulan log SkyWalking. Nonaktifkan pelapor log:
config.init(agent_log_reporter_active=False)Atau atur variabel lingkungan:
export SW_AGENT_LOG_REPORTER_ACTIVE=falseMethod not found: skywalking.v3.MeterReportService/collect saat melaporkan melalui gRPC
Backend tidak mendukung pengumpulan metrik SkyWalking. Nonaktifkan pelapor meter:
config.init(agent_meter_reporter_active=False)Atau atur variabel lingkungan:
export SW_AGENT_METER_REPORTER_ACTIVE=falseKedua parameter tersebut sudah diatur ke False dalam contoh konfigurasi di topik ini. Jika Anda mengikuti contoh tersebut, kesalahan ini tidak akan terjadi.