Spring Boot プロジェクトを Tomcat で外部デプロイするシナリオにおけるリンクトレーシングの可観測性¶
概要¶
企業が Java エコシステムを利用して独自のエンタープライズフレームワークを構築する際、使用する技術スタックは必ずしも同じではありません。例えばマイクロサービスフレームワークでは、Spring Boot + Spring Cloud を採用する企業もあれば、Spring Boot + Dubbo を採用する企業もあります。
Guance はさまざまな APM ツールをサポートしており、マイクロサービスのリンクトレーシングを Guance に取り込むことができます。ご自身のニーズに合わせて最適な APM ツールをお選びいただけます。
通常、構築されたマイクロサービスは Jar 形式で動作しますが、本稿ではこれらのマイクロサービスを war パッケージにビルドし、Tomcat にデプロイした場合に、どのようにリンクトレーシングデータを Guance に取り込むかを解説します。従来の war パッケージプロジェクトの場合も、取り込み方法は同じです。
SkyWalking シナリオ¶
前提条件¶
- クラウドホスト(Centos 7.9)
- JDK のインストール
- Zookeeper のインストール
- Guance アカウント
- Tomcat を 2 つデプロイし、デプロイパスは
/usr/local/df-demo/tomcat8080と/usr/local/df-demo/tomcat8081 - クラウドホストに <DataKit をインストールしていること
操作手順¶
Warning
本ケースでは、DataKit バージョン 1.4.9、Spring Cloud 3.1.1、Spring Boot 2.6.6、Dubbo 2.7.15、Zookeeper 3.7.1、JDK 1.8、Tomcat 9.0.48 を使用してテストしています
1 DataKit の設定¶
1.1 http_api の変更(任意)¶
/usr/local/datakit/conf.d/datakit.conf ファイルを編集し、http_api の listen の値を 0.0.0.0:9529 に変更します。これにより、他のホストからこのホストの 9529 ポートに正常にアクセスできるようになります。
他のホストから DataKit にアクセスする必要がない場合は、変更する必要はありません。
1.2 SkyWalking コレクターの有効化¶
ホストにログインし、サンプルファイルをコピーして SkyWalking コレクターを有効にします。
DataKit を再起動します。
2 APM の取り込み¶
2.1 SkyWalking のダウンロード¶
apache-skywalking-java-agent-8.11.0 をダウンロードし、解凍後、ファイル名を agent に変更して、ホストの /usr/local/df-demo/tomcat8080 および /usr/local/df-demo/tomcat8081 ディレクトリにアップロードします。
2.2 Tomcat の設定¶
/usr/local/df-demo/tomcat8080/bin/catalina.sh ファイルを編集し、以下の内容を追加します。
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8080/agent/skywalking-agent.jar -Dskywalking.agent.service_name=tomcat-customer -Dskywalking.collector.backend_service=localhost:11800"
パラメータの説明:
- -Dskywalking.agent.service_name:サービス名
- -Dskywalking.collector.backend_service:リンクトレーシングを報告する DataKit のアドレス + SkyWalking コレクターのポート
/usr/local/df-demo/tomcat8081/bin/catalina.sh ファイルを編集し、以下の内容を追加します。
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8081/agent/skywalking-agent.jar -Dskywalking.agent.service_name=tomcat-provider -Dskywalking.collector.backend_service=localhost:11800"
Tomcat を起動します。
2.3 プロジェクトのデプロイ¶
war パッケージをダウンロードし、skywalking ディレクトリ内の consumer.war と provider.war を取得します。
provider.warを/usr/local/df-demo/tomcat8081/webappsディレクトリに配置します。consumer.warを/usr/local/df-demo/tomcat8080/webappsディレクトリに配置します。
3 リンクトレーシングの可観測性¶
ブラウザで http://192.168.0.100:8080/consumer/ping にアクセスします。ここでの IP はホストのアドレスです。
「Guance」→「アプリケーションパフォーマンスモニタリング(APM)」にログインすると、tomcat-customer および tomcat-provider サービスが表示されます。
リンクの1つをクリックすると、フレームグラフ、スパンリスト、呼び出し関係などを確認できます。



