最近、プログラムのインターフェースを並行してテストする必要があり、jmeter を使用してテストしましたが、あまり満足していませんでした。主にアップロードとデータベースのクエリ処理の操作について、それぞれの所要時間を知りたいと思っています。若依のドキュメントを見てみましたが、skywalking をサポートしていることがわかりましたので、問題ありません。
インストール#
skywalking を使用するには、依存関係を先にインストールする必要があります。主に 2 つのファイル、サーバー側とエージェント側です。
インストール方法は 2 つあります。1 つは直接ダウンロードしてインストールする方法で、開発環境に適しています。もう 1 つは、docker-compose を使用して設定ファイルで一括デプロイする方法です。
直接インストール#
公式ウェブサイトからファイルをダウンロードします。
APM ではできるだけ古いバージョンをダウンロードしてください。最新バージョンでは Windows の起動に問題がある可能性があります。
エージェントは言語に応じて選択します。ここでは Java を選択していますが、最新バージョンを選択することができます。ダウンロードしたバージョンを覚えておいて、maven の依存関係を追加する際に対応させる必要があります。
ダウンロードが完了したら、展開してください。
APM を展開したら、bin
フォルダに移動して起動します。
デフォルトの web-ui は 8080 ポートを使用しています。ポートが使用中の場合は、webapp\webapp.yml
ファイルを変更してください。
その他の問題がある場合は、logs
フォルダ内のログを確認してください。
Docker で起動#
この方法は、プロダクション環境にデプロイするのに適しています。ログを処理するために elasticsearch
ミドルウェアが追加されています。
version: '3'
services:
elasticsearch:
image: elasticsearch:7.17.6
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
# クラスター名を設定
cluster.name: elasticsearch
# シングルノードモードで起動
discovery.type: single-node
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
volumes:
- /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
- /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
- /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
network_mode: "host"
sky-oap:
image: apache/skywalking-oap-server:8.9.1
container_name: sky-oap
ports:
- "11800:11800"
- "12800:12800"
environment:
JAVA_OPTS: -Xms512m -Xmx1g
# データの有効期間(日単位)
SW_CORE_RECORD_DATA_TTL: 7
# メトリクスデータの有効期間(日単位)
SW_CORE_METRICS_DATA_TTL: 7
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: 127.0.0.1:9200
TZ: Asia/Shanghai
network_mode: "host"
sky-ui:
image: apache/skywalking-ui:8.9.1
container_name: sky-ui
ports:
- "18080:18080"
environment:
SW_OAP_ADDRESS: http://127.0.0.1:12800
TZ: Asia/Shanghai
JAVA_OPTS: "-Dserver.port=18080"
depends_on:
- sky-oap
network_mode: "host"
対応するポートを開いておくことに注意してください。
直接起動すると、elasticsearch
の起動に失敗する可能性があります。
Error opening log file 'logs/gc.log': Permission denied
これは、elasticsearch が対応するパスにログファイルを書き込む権限がないためです。
解決方法も簡単で、対応するフォルダに権限を付与するだけです。
sudo chmod 777 -R /docker/elk/elasticsearch
変更が完了したら、再起動してください。 http://ip:9200
を開いて、es が出力する情報を確認します。
使用方法#
インストールが完了したら、RuoYi-Vue-Plus で skywalking を使用するのは非常に簡単です。関連するコードのコメントを解除するだけです。
ruoyi-admin/pom.xml
で maven のコメントを解除し、ダウンロードした Agent のバージョンを設定します。
ruoyi-admin/src/main/resources/logback.xml
でログの出力を変更します。
起動#
次に、プログラムの起動時に Agent をインジェクトします。
ランタイム引数を追加するように選択します。
-javaagent:D:\sky\skywalking-agent.jar
-Dskywalking.agent.service_name=ruoyi-auth
-Dskywalking.collector.backend_service=127.0.0.1:11800
それぞれの意味は次のとおりです。
javaagent
探針の場所
service_name
サービス名
backend_service
skywalking のアドレス
javaagent
は、ダウンロードした Agent を展開した中にある jar ファイルを指します。
設定が成功すると、いくつかのログがコンソールに出力されます。
アクセス#
これで、 http://IP:18080
で skywalking の webUI にアクセスできます。
右上で言語と自動更新を設定できます。
Skywalking リンクモニタリング
SpringBoot と SkyWalking 8.X の統合(Logback ログ収集を含む)
add Skywalking 統合 デフォルトはコメントアウトされています
Skywalking ダウンロード
SkyWalking クイックスタート