Guance を使用し、SkyWalking で RUM、APM、ログの連携分析を実現する¶
ユースケース¶
分散アプリケーション環境では、問題の調査にログとトレースがよく使われます。Guance を使用すると、ユーザーが Web 経由で行ったリクエストを、traceId を介してバックエンドのインターフェースと関連付けることができます。バックエンドインターフェースがログを出力している場合は、traceId を介してトレースとログを関連付け、最終的に RUM、APM、ログの連携 を実現します。さらに、Guance プラットフォームで総合的な分析を行うことで、問題の発見と特定を非常に迅速かつ簡単に行うことができます。
この記事では、簡単に扱えるオープンソースプロジェクトを例に、ステップバイステップでエンドツーエンドの可観測性を実現します。
前提条件¶
- Guance アカウントを作成していること。
- Spring Boot および Vue アプリケーション。
- Nginx をデプロイした Linux サーバー。
操作手順¶
Warning
この記事の例で使用するバージョン情報は以下の通りです:DataKit 1.4.15、SkyWalking 8.7.0、Nginx 1.20.2、JDK 1.8、Vue 3.2
1 DataKit のデプロイ¶
1.1 DataKit のインストール¶
「Guance」にログインし、「統合」→「DataKit」→「Linux」の順に進み、「コピーアイコン」をクリックしてインストールコマンドをコピーします。
Linux サーバーにログインし、コピーしたコマンドを実行します。
1.2 データ収集の有効化¶
RUM を有効にするには、ユーザーが DataKit の 9529 ポートにリモートアクセスできる必要があります。以下のファイルを編集します。
listen の値を 0.0.0.0:9529 に変更します。
conf ファイルをコピーして、SkyWalking データ収集を有効にします。
ログデータ収集を有効にします。
skywalking-service-log.conf ファイルを編集します。
logfilesにはログファイルのパスを指定します。jar を/usr/local/df-demo/skywalkingにデプロイするため、ここではログパスは/usr/local/df-demo/skywalking/logs/log.logとなります。sourceはskywalking-service-logとします。
1.3 DataKit の再起動¶
2 アプリケーションのデプロイ¶
2.1 バックエンドサービスのデプロイ¶
skywalking-demo プロジェクトをダウンロードし、Idea で開きます。右側の「package」をクリックすると、skywalking-user-service.jar ファイルが生成されます。
skywalking-user-service.jar を /usr/local/df-demo/skywalking ディレクトリにアップロードします。
注意:
1. プロジェクトに依存関係を追加する必要があります。
```xml
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.7.0</version>
</dependency>
```
2.2 Web のデプロイ¶
Web プロジェクトのディレクトリに移動し、コマンドラインで cnpm install を実行します。
npm run build を実行してデプロイファイルを生成します。
disk ディレクトリ内のファイルをサーバーの /usr/local/web ディレクトリにコピーします。
/etc/nginx/nginx.conf ファイルを編集し、以下の内容を追加します。
nginx の設定を再読み込みします。
ブラウザに Linux サーバーの IP を入力し、フロントエンド画面にアクセスします。
3 APM の有効化¶
SkyWalking をダウンロードします。
agent ディレクトリを Linux の /usr/local/df-demo/skywalking ディレクトリにアップロードします。
マイクロサービスが Spring Cloud Gateway を使用している場合、agent/optional-plugins/ ディレクトリ内の apm-spring-cloud-gateway-2.1.x-plugin-8.7.0.jar と apm-spring-webflux-5.x-plugin-8.7.0.jar を skywalking-agent/plugins/ ディレクトリにコピーする必要があります。
注意: apm-spring-cloud-gateway のバージョンは、使用している Spring Cloud Gateway のバージョンに対応している必要があります。
cp /usr/local/df-demo/skywalking/agent/optional-plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.7.0.jar /usr/local/df-demo/skywalking/agent/plugins/
cp /usr/local/df-demo/skywalking/agent/optional-plugins/apm-spring-webflux-5.x-plugin-8.7.0.jar /usr/local/df-demo/skywalking/agent/plugins/
以下のコマンドを実行してバックエンドサービスを起動し、フロントエンド画面のボタンをクリックしてバックエンドサービスを呼び出します。
cd /usr/local/df-demo/skywalking
java -javaagent:agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-log -Dskywalking.collector.backend_service=localhost:11800 -jar skywalking-user-service.jar
「Guance」にログインし、「APM(アプリケーションパフォーマンスモニタリング)」に進み、サービス、トレース、トポロジービューを確認します。
4 RUM の有効化¶
「Guance」にログインし、「RUM(リアルユーザーモニタリング)」に進み、新しいアプリケーション skywalking-web-demo を作成し、以下の JS をコピーします。
/usr/local/web/index.html を修正し、コピーした JS を head タグ内に貼り付けます。
datakitOriginを DataKit のアドレス(ここでは Linux の IP アドレス + ポート 9529)に変更します。allowedTracingOriginsをバックエンドインターフェースのアドレス(ここでは Linux の IP アドレス + ポート 8090)に変更します。
パラメータ説明
- datakitOrigin:データ転送アドレス。ここでは DataKit のドメイン名または IP を指定します。必須項目です。
- env:アプリケーションが属する環境。必須項目です。
- version:アプリケーションのバージョン。必須項目です。
- trackInteractions:ユーザー操作(ボタンクリック、情報送信など)の追跡を有効にするかどうか。必須項目です。
- traceType:トレースタイプ。デフォルトは ddtrace です。必須ではありません。
- allowedTracingOrigins:APM と RUM のトレースを連携させるために、バックエンドサービスのドメイン名または IP を指定します。必須ではありません。
フロントエンド画面のボタンをクリックします。「Guance」→「RUM(リアルユーザーモニタリング)」にログインし、「skywalking-web-demo」をクリックして、UV、PV、セッション数、アクセスされたページなどの情報を確認します。
5 エンドツーエンドの可観測性¶
「Guance」→「RUM(リアルユーザーモニタリング)」にログインし、「skywalking-web-demo」をクリックして、エクスプローラーに進み、「view」を選択してページの呼び出し状況を確認し、「route_change」をクリックして詳細を確認します。
「トレース」を選択します。
リクエストレコードをクリックすると、「フレームグラフ」、「スパンリスト」、「サービス呼び出し関係」、およびこのトレース呼び出しによって生成されたログを確認できます。






















