qinfengge

qinfengge

醉后不知天在水,满船清梦压星河
github
email
telegram

RuoYi-Vue-Plusは、skywalkingを使用してトレースを行います。

最近、プログラムのインターフェースを並行してテストする必要があり、jmeter を使用してテストした結果に満足していませんでした。主に、アップロードとデータベースのクエリ処理の操作について、それぞれの所要時間を知りたいと思っています。若依のドキュメントを見ると、skywalking をサポートしていることがわかりましたので、問題ありません。

インストール#

skywalking を使用するには、依存関係を先にインストールする必要があります。主に 2 つのファイル、サーバー側とエージェント側です。
インストール方法は 2 つあります。1 つは直接ダウンロードしてインストールする方法で、開発環境に適しています。もう 1 つは、docker-compose を使用して設定ファイルで一括デプロイする方法です。

直接インストール#

公式ウェブサイトからファイルをダウンロードします。

image

APM はできるだけ古いバージョンをダウンロードしてください。最新バージョンでは、Windows での起動に問題がある可能性があります。

image

エージェントは対応する言語を選択します。ここでは 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 极简入门

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。