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フォルダに移動して起動します。

image

デフォルトの web-ui は 8080 ポートを使用しています。ポートが使用中の場合は、webapp\webapp.ymlファイルを変更してください。

image

その他の問題がある場合は、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 が出力する情報を確認します。

image

使用方法#

インストールが完了したら、RuoYi-Vue-Plus で skywalking を使用するのは非常に簡単です。関連するコードのコメントを解除するだけです。

ruoyi-admin/pom.xmlで maven のコメントを解除し、ダウンロードした Agent のバージョンを設定します。

image

ruoyi-admin/src/main/resources/logback.xmlでログの出力を変更します。

image

image

起動#

次に、プログラムの起動時に Agent をインジェクトします。

image

ランタイム引数を追加するように選択します。

-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 ファイルを指します。
image

設定が成功すると、いくつかのログがコンソールに出力されます。

image

アクセス#

これで、 http://IP:18080 で skywalking の webUI にアクセスできます。

image

右上で言語と自動更新を設定できます。

image

Skywalking リンクモニタリング
SpringBoot と SkyWalking 8.X の統合(Logback ログ収集を含む)
add Skywalking 統合 デフォルトはコメントアウトされています
Skywalking ダウンロード
SkyWalking クイックスタート

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