最近、プログラムのインターフェースを並行してテストする必要があり、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 Download
SkyWalking 极简入门