全部产品
Search
文档中心

Managed Service for OpenTelemetry:Gunakan SkyWalking untuk melaporkan data aplikasi Python

更新时间:Jul 02, 2025

Sebelum melihat data jejak aplikasi, Anda harus menggunakan klien untuk melaporkan data jejak ke Managed Service for OpenTelemetry. Topik ini menjelaskan cara menggunakan SkyWalking SDK untuk Python guna melaporkan data aplikasi Python.

Prasyarat

  • Agen Python dari Apache SkyWalking telah diunduh. Disarankan untuk mengunduh versi terbaru dari agen Python.

  • SkyWalking-Python telah dirujuk dalam proyek Python.

Prasyarat

Untuk mendapatkan titik akhir SkyWalking, ikuti langkah-langkah berikut:

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Di bilah navigasi sisi kiri, klik Cluster Configurations. Di halaman yang muncul, klik tab Access point information.

  3. Di bilah navigasi atas, pilih wilayah. Di bagian Cluster Information, aktifkan Show Token.

  4. Atur parameter Client menjadi SkyWalking.

    Dapatkan titik akhir SkyWalking di kolom Related Information tabel di bagian bawah.

    SkyWalking接入点信息

    Catatan

    Jika aplikasi Anda diterapkan di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.

Informasi Latar Belakang

SkyWalking adalah layanan pemantauan kinerja aplikasi (APM) populer yang dikembangkan di Tiongkok. SkyWalking dirancang untuk layanan mikro, arsitektur cloud-native, dan kontainer seperti Docker, Kubernetes, dan Mesos. SkyWalking juga merupakan sistem pelacakan terdistribusi.

SkyWalking-Python adalah repositori agen Python resmi dari SkyWalking. Anda dapat menggunakan SkyWalking-Python untuk memantau aplikasi Python. SkyWalking-Python juga mendukung instrumentasi otomatis untuk repositori pihak ketiga seperti Kafka, AIOHTTP, Redis, dan WebSockets.

Tabel berikut menjelaskan repositori pihak ketiga yang dapat dipantau menggunakan SkyWalking-Python.

Repositori

Versi Python - Versi Repositori

Pengaya

aiohttp

3.7 atau lebih baru - 3.7.*

sw_aiohttp

aioredis

3.7 atau lebih baru - 2.0.*

sw_aioredis

aiormq

3.7 atau lebih baru - 6.3 dan 6.4

sw_aiormq

amqp

3.7 atau lebih baru - 2.6.1

sw_amqp

asyncpg

3.7 atau lebih baru - 0.25.0

sw_asyncpg

bottle

3.7 atau lebih baru - 0.12.23

sw_bottle

celery

3.7 atau lebih baru - 5.1

sw_celery

confluent_kafka

3.7 atau lebih baru - 1.5.0, 1.7.0, dan 1.8.2

sw_confluent_kafka

django

3.7 atau lebih baru - 3.2

sw_django

elasticsearch

3.7 atau lebih baru - 7.13, 7.14, dan 7.15

sw_elasticsearch

hug

3.11 atau lebih baru - Tidak didukung

3.10 atau lebih baru - 2.5 dan 2.6

3.7 atau lebih baru - 2.4.1, 2.5, dan 2.6

sw_falcon

fastapi

3.7 atau lebih baru - 0.89.* dan 0.88.*

sw_fastapi

flask

3.7 atau lebih baru - 2.0

sw_flask

happybase

3.7 atau lebih baru - 1.2.0

sw_happybase

http_server

3.7 atau lebih baru - *

sw_http_server

werkzeug

3.7 atau lebih baru - 1.0.1 dan 2.0

sw_http_server

httpx

3.7 atau lebih baru - 0.23.* dan 0.22.*

sw_httpx

kafka-python

3.7 atau lebih baru - 2.0

sw_kafka

loguru

3.7 atau lebih baru - 0.6.0 dan 0.7.0

sw_loguru

mysqlclient

3.7 atau lebih baru - 2.1.*

sw_mysqlclient

neo4j

3.7 atau lebih baru - 5.*

sw_neo4j

psycopg[binary]

3.11 atau lebih baru - 3.1.*

3.7 atau lebih baru - 3.0.18 dan 3.1.*

sw_psycopg

psycopg2-binary

3.10 atau lebih baru - Tidak didukung

3.7 atau lebih baru - 2.9

sw_psycopg2

pymongo

3.7 atau lebih baru - 3.11.*

sw_pymongo

pymysql

3.7 atau lebih baru - 1.0

sw_pymysql

pyramid

3.7 atau lebih baru - 1.10 dan 2.0

sw_pyramid

pika

3.7 atau lebih baru - 1.2

sw_rabbitmq

redis

3.7 atau lebih baru - 3.5.* dan 4.5.1

sw_redis

requests

3.7 atau lebih baru - 2.26 dan 2.25

sw_requests

sanic

3.10 atau lebih baru - Tidak didukung

3.7 atau lebih baru - 20.12

sw_sanic

tornado

3.7 atau lebih baru - 6.0 dan 6.1

sw_tornado

urllib3

3.7 atau lebih baru - 1.26 dan 1.25

sw_urllib3

urllib_request

3.7 atau lebih baru - *

sw_urllib_request

websockets

3.7 atau lebih baru - 10.3 dan 10.4

sw_websockets

Kode Contoh

Untuk informasi lebih lanjut tentang repositori kode contoh, lihat skywalking demo di GitHub.

Kode contoh mengimplementasikan perutean dan pengalihan sederhana permintaan HTTP berdasarkan kerangka kerja Flask serta melakukan operasi pada database MySQL berdasarkan permintaan. Setelah data dilaporkan ke Managed Service for OpenTelemetry, Anda dapat melihat jejak lintas proses dan data pemantauan panggilan database MySQL.

Gunakan SkyWalking untuk secara otomatis menginstrumentasi aplikasi Python

Anda dapat mengonfigurasi parameter agen Python SkyWalking langsung dalam proyek Python atau dengan mendefinisikan variabel lingkungan.

Konfigurasikan parameter agen Python SkyWalking dalam proyek Python

Ubah parameter config.init dalam file proyek Python. Dalam kode contoh ini, file proxy/TestProxy.py dan controller/TestController.py digunakan.

from skywalking import config
config.init(ConfigurationName = ConfigurationValue)

Konfigurasikan parameter agen Python SkyWalking dengan mendefinisikan variabel lingkungan

Tambahkan konten berikut ke file variabel lingkungan dan segarkan file untuk membuat file yang dimodifikasi berlaku:

export SW_AGENT_ConfigurationName=ConfigurationValue
Catatan

Untuk kontainer Docker, Anda dapat mengonfigurasi variabel lingkungan di direktori environment file docker-compose.yaml.

  1. Konfigurasikan titik akhir dan token.

    1. Konfigurasikan agen Python SkyWalking dalam file Python.

      from skywalking import agent, config
    2. Konfigurasikan titik akhir dan token.

      Ganti <endpoint> dan <auth-token> dengan titik akhir dan token otentikasi yang diperoleh dalam prasyarat.

      config.init(agent_collector_backend_services='<endpoint>',
                  agent_authentication='<auth-token>')
  2. Konfigurasikan nama layanan sebagai pengenal aplikasi.

    config.init(agent_name='<service name>')
  3. Tentukan protokol untuk pelaporan data. SkyWalking mendukung gRPC.

    ### Tentukan gRPC sebagai protokol.
    config.init(agent_protocol='<protocol>')
  4. Konfigurasikan parameter opsional sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut tentang parameter, lihat Dokumentasi Apache SkyWalking.

  5. Mulai ulang aplikasi.

FAQ

  • Apa yang harus saya lakukan jika pesan Method not found: skywalking.v3.LogReportService/collect muncul?image.png

    Atur parameter agent_log_reporter_active bersarang di bawah config.init menjadi False.

    config.init(agent_log_reporter_active=False)
  • Apa yang harus saya lakukan jika pesan Method not found: skywalking.v3.MeterReportService/collect muncul saat melaporkan data melalui gRPC? image.png Anda tidak dapat melaporkan metrics ke konsol. Anda dapat mengatur parameter agent_meter_reporter_active bersarang di bawah config.init menjadi False.

    config.init(agent_meter_reporter_active=False)

Referensi

Situs Resmi Apache SkyWalking