SkyWalking を使用してアプリケーションをイベントトラッキングし、トレースデータを Managed Service for OpenTelemetry に報告すると、Managed Service for OpenTelemetry はアプリケーションのモニタリングを開始します。その後、アプリケーションのトポロジー、トレース、異常なトランザクション、遅いトランザクション、SQL 分析など、アプリケーションのモニタリングデータを表示できます。このトピックでは、SkyWalking Java エージェントを使用して自動イベントトラッキングを実行する方法について説明します。このトピックでは、SkyWalking Java エージェントの設定可能な属性についても説明します。
前提条件
SkyWalking ダウンロードページから SkyWalking 6.X.X 以降がダウンロードされていること。最新の安定バージョンをダウンロードすることを推奨します。解凍された Agent フォルダが Java プロセスからアクセスできるディレクトリに保存されていること。
すべてのプラグインが
/pluginsディレクトリに保存されていること。起動時にディレクトリにプラグインを追加すると、そのプラグインは有効になります。ディレクトリからプラグインを削除すると、そのプラグインは無効になります。デフォルトでは、ログファイルは/logsディレクトリに保存されます。
すべてのログ、プラグイン、および設定ファイルは agent フォルダに保存されます。このフォルダは変更しないでください。
背景情報
SkyWalking は、中国で開発された人気のアプリケーションパフォーマンスモニタリング (APM) サービスです。SkyWalking は、マイクロサービス、クラウドネイティブアーキテクチャ、およびコンテナーベースのアーキテクチャ向けに設計されています。コンテナーベースのアーキテクチャには、Docker、Kubernetes、Mesos が含まれます。SkyWalking は、分散トレーシングシステムでもあります。
SkyWalking を使用して Java アプリケーションデータを Managed Service for OpenTelemetry コンソールに報告する前に、アプリケーションをイベントトラッキングする必要があります。SkyWalking は、Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis など、さまざまなフレームワークやライブラリの自動イベントトラッキングを提供します。SkyWalking では、OpenTracing 標準に基づいてアプリケーションを手動でイベントトラッキングすることもできます。このトピックでは、アプリケーションを自動的にイベントトラッキングする方法について説明します。
サンプルコード
サンプルコードリポジトリの詳細については、「SkyWalking Demo」をご参照ください。
SkyWalking を使用した Java アプリケーションの自動イベントトラッキング
SkyWalking Java Agent をダウンロードします。
SkyWalking Java Agent の設定ファイルを変更して、アクセス情報とアプリケーション情報を設定します。
collector.backend_service=<endpoint> // 他の条件から取得したエンドポイント情報に置き換えます。 agent.authentication=<token> // 前提条件から取得した認証トークンに置き換えます。 agent.service_name=<Service Name> // 実際のアプリケーション名に置き換えます。アプリケーションのランタイム環境に基づいて、次のいずれかのメソッドを使用して SkyWalking Agent へのパスを指定します。
説明次のサンプルコードの
<skywalking-agent-path>を、agent フォルダ内の skywalking-agent.jar ファイルの絶対パスに置き換えてください。Linux Tomcat 7 / Tomcat 8
次の内容を
tomcat/bin/catalina.shファイルの最初の行として追加します。CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTSWindows Tomcat 7 / Tomcat 8
次の内容を
tomcat/bin/catalina.batファイルの最初の行として追加します。set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"JAR ファイルまたは Spring Boot
アプリケーションの起動コマンドに -javaagent パラメーターを追加します。
重要-javaagent パラメーターは -jar パラメーターの前に記述する必要があります。
java -javaagent:<skywalking-agent-path> -jar yourApp.jarJetty
次の内容を
{JETTY_HOME}/start.ini設定ファイルに追加します。--exec -javaagent:<skywalking-agent-path>アプリケーションを再起動します。
SkyWalking Java エージェントの設定可能な属性
SkyWalking Java エージェントは、設定可能な幅広い属性をサポートしています。詳細については、サンプルコードの config/agent.config ファイルをご参照ください。
SkyWalking Java エージェントの部分的な属性
次の表に、SkyWalking Java エージェント 8.16.0 の部分的な属性を示します。
設定方法
システム属性
-Dskywalking. と agent.config 設定ファイルのキーを使用します。サンプルコード:
# システム属性を使用して agent.service_name 属性を設定します。
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jarプロキシオプション
JVM パラメーターのプロキシパスの後に属性を追加します。
# テンプレート
-javaagent:/path/to/skywalking-agent.jar=[key1]=[value1],[key2]=[value2]
# 例
java -javaagent:/path/to/skywalking-agent.jar=agent.service_name=<your-service-name>,agent.authentication=<your-token> -jar your-project.jarシステム環境変数
属性をシステム環境変数として設定します。SkyWalking エージェントは自動的にシステム環境変数を取得します。config/agent.config ファイルで特定の属性に対応するシステム環境変数をクエリできます。たとえば、agent.service_name 属性はシステム環境変数 SW_AGENT_NAME に対応します。
agent.service_name=${SW_AGENT_NAME:default_name}
# 環境変数を設定します。
export SW_AGENT_NAME=<your_service_name>優先順位
上記の設定方法の優先順位は、高いものから低いものへ、プロキシオプション、システムプロパティ、システム環境変数、設定ファイルの順です。
SkyWalking Java エージェントプラグイン
SkyWalking Java エージェントは、さまざまなミドルウェア、フレームワーク、リポジトリをサポートしています。サポートされているプラグインの詳細については、サンプルコードの /plugins フォルダをご参照ください。
プラグインのアクティブ化
/plugins フォルダ内のすべてのプラグインがアクティブ化されます。プラグインの JAR パッケージが /plugins フォルダから削除されると、プラグインは利用できなくなります。
サポートされている公式プラグイン
サポートされている公式プラグインは /plugins フォルダで利用できます。
オプションのプラグイン
SkyWalking Java エージェントのプラグインはプラガブルです。オプションのプラグインは、サードパーティリポジトリまたはエージェントの optional-plugins フォルダで利用できます。オプションのプラグインを使用するには、プラグインを /plugins フォルダに移動します。
ブートストラッププラグイン
予期しないリスクのため、すべてのブートストラッププラグインはオプションです。ブートストラッププラグインは bootstrap-plugins フォルダで利用できます。ブートストラッププラグインを使用する場合は、プラグインの JAR パッケージを /plugins フォルダに追加できます。
サポートされているプラグイン
SkyWalking の公式チームは、以下のプラグインが SkyWalking のパフォーマンスに影響を与え、その使用を制限する可能性があると考えています。そのため、プラグインはサードパーティのリポジトリでのみリリースされます。詳細については、GitHub の「java-plugin-extensions」をご参照ください。
プラグインの開発
カスタム SkyWalking Java エージェントプラグインを作成するには、SkyWalking の公式ドキュメントをご参照ください。
Managed Service for OpenTelemetry はトレースレポートをサポートしています。カスタムトレースプラグインを作成するには、SkyWalking の公式ドキュメントをご参照ください。
よくある質問
Q: SkyWalking がサーバーに接続された後、アプリケーションを作成できないのはなぜですか?
A: データが Managed Service for OpenTelemetry に報告されていない可能性があります。データが Managed Service for OpenTelemetry に報告されているかどうかを確認する必要があります。たとえば、{skywalking agent path}/logs/skywalking-api.log ファイルの内容を確認できます。データが報告されている場合、次の図が表示されます。
データが報告されない理由は次のとおりです: サンプリングが有効になっている、データがフィルター処理されている、または Managed Service for OpenTelemetry を使用するリクエストがトリガーされていない。

