Setelah Anda menginstrumentasi aplikasi dengan SkyWalking dan melaporkan data distributed tracing ke Managed Service for OpenTelemetry, Managed Service for OpenTelemetry mulai memantau aplikasi Anda. Anda kemudian dapat melihat berbagai data pemantauan, seperti topologi aplikasi, jejak (traces), transaksi gagal, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara menggunakan SkyWalking Python Agent untuk mengaktifkan auto-instrumentation dan melaporkan data aplikasi.
Prasyarat
-
Anda telah mengunduh agen Python untuk Apache SkyWalking. Kami menyarankan agar Anda menggunakan versi terbaru.
-
Anda telah menambahkan SkyWalking Python agent ke proyek Python Anda.
-
Informasi latar belakang
SkyWalking adalah alat open source populer untuk application performance monitoring (APM) pada arsitektur microservice, cloud-native, dan berbasis container, termasuk Docker, Kubernetes, dan Mesos. Inti dari SkyWalking adalah sistem distributed tracing.
skywalking-python adalah library agen Python resmi untuk SkyWalking. Anda dapat mengintegrasikan skywalking-python untuk memantau aplikasi Python. Library ini mendukung auto-instrumentation untuk banyak library pihak ketiga, seperti Kafka, HTTP, AIOHTTP, Redis, dan WebSocket.
Aplikasi contoh
Repositori aplikasi contoh: SkyWalking Demo
Demo ini merupakan contoh sederhana berbasis Flask yang meneruskan permintaan dan berinteraksi dengan database MySQL. Agen SkyWalking memantau aplikasi dan melaporkan data.
Aktifkan auto-instrumentation untuk aplikasi Python
Anda dapat mengonfigurasi parameter SkyWalking Python Agent dalam file proyek Python Anda atau sebagai variabel lingkungan.
Konfigurasikan parameter dalam kode
Ubah parameter config.init dalam file proyek Python Anda. Dalam aplikasi contoh, file yang sesuai adalah proxy/TestProxy.py dan controller/TestController.py.
from skywalking import config
config.init(ConfigurationName = ConfigurationValue)
Konfigurasikan parameter sebagai variabel lingkungan
Tambahkan konten berikut ke file variabel lingkungan Anda, lalu restart aplikasi agar perubahan diterapkan.
export SW_AGENT_ConfigurationName=ConfigurationValue
Untuk lingkungan container Docker, Anda dapat mengonfigurasi variabel lingkungan di bawah opsi environment dalam file docker-compose.yaml.
-
Konfigurasikan endpoint dan token.
-
Impor SkyWalking dalam file Python Anda.
from skywalking import agent, config -
Konfigurasikan endpoint dan token otentikasi.
Ganti
<endpoint>dan<auth-token>dengan endpoint dan token otentikasi yang Anda peroleh di bagian Prasyarat.config.init(agent_collector_backend_services='<endpoint>', agent_authentication='<auth-token>')
-
-
Konfigurasikan nama layanan sebagai pengenal aplikasi.
config.init(agent_name='<service name>') -
Konfigurasikan protokol pelaporan data. Satu-satunya protokol yang didukung adalah gRPC.
### Satu-satunya protokol pelaporan yang tersedia adalah 'grpc'. config.init(agent_protocol='<protocol>') -
Konfigurasikan parameter opsional lainnya sesuai kebutuhan. Untuk informasi lebih lanjut, lihat dokumentasi resmi Apache SkyWalking.
-
Restart aplikasi.
FAQ
-
Apa yang harus saya lakukan jika terjadi error
Method not found: skywalking.v3.LogReportService/collectsaat melaporkan data melalui gRPC?grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNIMPLEMENTED details = "Method not found: skywalking.v3.LogReportService/collect" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Method not found: skywalking.v3.LogReportService/collect", grpc_status:12, created_time:"2023-07-05T15:58:00"}" >Atur
agent_log_reporter_activekeFalsedalam pemanggilanconfig.init.config.init(agent_log_reporter_active=False) -
Apa yang harus saya lakukan jika terjadi error
Method not found: skywalking.v3.MeterReportService/collectsaat melaporkan data melalui gRPC?grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNIMPLEMENTED details = "Method not found: skywalking.v3.MeterReportService/collect" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Method not found: skywalking.v3.MeterReportService/collect", grpc_status:12, created_time:"2023-07-05T16:00:00+08:00"}" >Konsol tidak mendukung pelaporan data
metric. Dalam pemanggilanconfig.init, aturagent_meter_reporter_activekeFalse.config.init(agent_meter_reporter_active=False)

