Uygulamanızı SkyWalking ile enstrümanlayıp dağıtık izleme verilerini Managed Service for OpenTelemetry hizmetine raporladığınızda, Managed Service for OpenTelemetry uygulamanızı izlemeye başlar. Ardından uygulama topolojisi, izler, başarısız işlemler, yavaş işlemler ve SQL analizi gibi çeşitli izleme verilerini görüntüleyebilirsiniz. Bu konu, SkyWalking Python Agent'ı kullanarak otomatik enstrümantasyonu nasıl etkinleştireceğinizi ve uygulama verilerini nasıl raporlayacağınızı açıklar.
Ön koşullar
Apache SkyWalking için Python aracısını indirdiniz. En son sürümü kullanmanızı öneririz.
SkyWalking Python aracısını Python projenize eklediniz.
-
Arka plan bilgileri
SkyWalking; Docker, Kubernetes ve Mesos dahil olmak üzere mikroservisler, cloud-native ve konteyner tabanlı mimariler için popüler bir açık kaynaklı uygulama performansı izleme (APM) aracıdır. SkyWalking'in çekirdeğinde dağıtık bir izleme sistemi bulunur.
skywalking-python, SkyWalking için resmi Python aracı kitaplığıdır. skywalking-python'i entegre ederek Python uygulamalarını izleyebilirsiniz. Kafka, HTTP, AIOHTTP, Redis ve WebSockets gibi birçok üçüncü taraf kitaplık için otomatik enstrümantasyonu destekler.
Örnek uygulama
Örnek uygulama deposu: SkyWalking Demo
Bu demo, istekleri ileten ve MySQL veritabanı ile etkileşime giren Flask tabanlı basit bir örnektir. SkyWalking aracı uygulamayı izler ve verileri raporlar.
Python uygulaması için otomatik enstrümantasyonu etkinleştirme
SkyWalking Python Agent parametrelerini Python proje dosyalarınızda veya ortam değişkenleri olarak yapılandırabilirsiniz.
Parametreleri kodda yapılandırma
Python proje dosyanızdaki config.init parametrelerini değiştirin. Örnek uygulamada ilgili dosyalar proxy/TestProxy.py ve controller/TestController.py dosyalarıdır.
from skywalking import config
config.init(ConfigurationName = ConfigurationValue)
Parametreleri ortam değişkeni olarak yapılandırma
Aşağıdaki içeriği ortam değişkeni dosyanıza ekleyin ve değişikliklerin etkili olması için uygulamanızı yeniden başlatın.
export SW_AGENT_ConfigurationName=ConfigurationValue
Docker konteyner ortamları için docker-compose.yaml dosyasındaki environment seçeneği altında ortam değişkenlerini yapılandırabilirsiniz.
-
Uç noktayı ve belirteci yapılandırın.
-
Python dosyanızda SkyWalking'i içe aktarın.
from skywalking import agent, config -
Uç noktayı ve kimlik doğrulama belirtecini yapılandırın.
<endpoint>ve<auth-token>değerlerini Ön koşullar bölümünde edindiğiniz uç nokta ve kimlik doğrulama belirteci ile değiştirin.config.init(agent_collector_backend_services='<endpoint>', agent_authentication='<auth-token>')
-
-
Uygulama tanımlayıcısı olarak bir hizmet adı yapılandırın.
config.init(agent_name='<service name>') -
Veri raporlama protokolünü yapılandırın. Desteklenen tek protokol gRPC'dir.
### The only available reporting protocol is 'grpc'. config.init(agent_protocol='<protocol>') Gerektiğinde diğer isteğe bağlı parametreleri yapılandırın. Daha fazla bilgi için bkz. Apache SkyWalking resmi belgeleri.
Uygulamayı yeniden başlatın.
SSS
-
gRPC üzerinden veri raporlarken
Method not found: skywalking.v3.LogReportService/collecthatası oluşursa ne yapmalıyım?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"}" >config.initçağrısındaagent_log_reporter_activedeğeriniFalseolarak ayarlayın.config.init(agent_log_reporter_active=False) -
gRPC üzerinden veri raporlarken
Method not found: skywalking.v3.MeterReportService/collecthatası oluşursa ne yapmalıyım?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
metricverisi raporlamayı desteklemez.config.initçağrısındaagent_meter_reporter_activedeğeriniFalseolarak ayarlayın.config.init(agent_meter_reporter_active=False)
