アプリケーションのトレースデータを表示するには、クライアントを使用してトレースデータを Managed Service for OpenTelemetry にレポートする必要があります。このトピックでは、SkyWalking SDK for Python を使用して Python アプリケーションデータをレポートする方法について説明します。
前提条件
Apache SkyWalking の Python エージェントがダウンロードされていること。最新バージョンの Python エージェントをダウンロードすることをお勧めします。
Python プロジェクトで SkyWalking-Python が参照されていること。
前提条件
背景情報
SkyWalking は、中国で開発された一般的なアプリケーションパフォーマンス監視(APM)サービスです。SkyWalking は、マイクロサービス、クラウドネイティブアーキテクチャ、および Docker、Kubernetes、Mesos などのコンテナ向けに設計されています。SkyWalking は分散トレーシングシステムでもあります。
SkyWalking-Python は、SkyWalking の公式 Python エージェントリポジトリです。SkyWalking-Python を使用して、Python アプリケーションを監視できます。SkyWalking-Python を使用すると、Kafka、AIOHTTP、Redis、WebSockets などのサードパーティリポジトリを自動的にインストゥルメントできます。
サンプルコード
サンプルコードリポジトリの詳細については、GitHub のskywalking demo を参照してください。
サンプルコードは、Flask フレームワークに基づいて HTTP リクエストの単純なルーティングと転送を実装し、リクエストに基づいて MySQL データベースに対する操作を実行します。データが Managed Service for OpenTelemetry にレポートされると、クロスプロセストレースと MySQL データベース呼び出しの監視データを表示できます。
SkyWalking を使用して Python アプリケーションを自動的にインストゥルメントする
SkyWalking Python エージェントのパラメータは、Python プロジェクトで直接、または環境変数を定義することで設定できます。
Python プロジェクトで SkyWalking Python エージェントのパラメータを設定する
Python プロジェクトファイルの config.init パラメータを変更します。このサンプルコードでは、proxy/TestProxy.py ファイルと controller/TestController.py ファイルが使用されます。
from skywalking import config
config.init(ConfigurationName = ConfigurationValue) # 設定名 = 設定値環境変数を定義して SkyWalking Python エージェントのパラメータを設定する
環境変数ファイルに次のコンテンツを追加し、ファイルを更新して変更を反映させます。
export SW_AGENT_ConfigurationName=ConfigurationValue # 環境変数名=設定値Docker コンテナの場合、docker-compose.yaml ファイルの environment ディレクトリで環境変数を設定できます。
エンドポイントとトークンを設定します。
Python ファイルで SkyWalking Python エージェントを設定します。
from skywalking import agent, configエンドポイントとトークンを設定します。
<endpoint>および<auth-token>を、前提条件で取得したエンドポイントと認証トークンに置き換えます。config.init(agent_collector_backend_services='<endpoint>', # エンドポイント agent_authentication='<auth-token>') # 認証トークン
アプリケーション識別子としてサービス名を設定します。
config.init(agent_name='<service name>') # サービス名データのレポートに使用するプロトコルを指定します。SkyWalking は gRPC をサポートしています。
### gRPC をプロトコルとして指定します。 config.init(agent_protocol='<protocol>') # プロトコルビジネス要件に基づいてオプションのパラメータを設定します。パラメータの詳細については、Apache SkyWalking のドキュメントを参照してください。
アプリケーションを再起動します。
FAQ
Method not found: skywalking.v3.LogReportService/collectというメッセージが表示された場合はどうすればよいですか?
config.initにネストされているagent_log_reporter_activeパラメータをFalseに設定します。config.init(agent_log_reporter_active=False) # ログレポート機能を無効化gRPC 経由でデータをレポートするときに
Method not found: skywalking.v3.MeterReportService/collectというメッセージが表示された場合はどうすればよいですか?
metricsをコンソールにレポートすることはできません。config.initにネストされているagent_meter_reporter_activeパラメータをFalseに設定できます。config.init(agent_meter_reporter_active=False) # メトリクスレポート機能を無効化
