アプリケーションのトレースデータを表示するには、クライアントを使用してトレースデータを 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) # メトリクスレポート機能を無効化