1. 程式人生 > 程式設計 >Spring Cloud 整合Apache-SkyWalking實現鏈路跟蹤的方法

Spring Cloud 整合Apache-SkyWalking實現鏈路跟蹤的方法

什麼是SkyWalking

檢視官網https://skywalking.apache.org/

分散式系統的應用程式效能監視工具,專為微服務、雲原生架構和基於容器(Docker、K8s、Mesos)架構而設計。

安裝

進入下載頁面https://skywalking.apache.org/zh/downloads/
這裡用的是ElasticSearch 7版本,所以你需要安裝完成ElasticSearch 7,不再贅述。

在這裡插入圖片描述

解壓後,可以修改啟動埠


apache-skywalking-apm-bin-es7/webapp/webapp.yml

啟動


bin/startup.bat
開啟地址:http:.//localhost:8080

在這裡插入圖片描述

部署完成了,你也可以使用Docker 部署。如下:

[root@localhost ~]# docker search skywalking
NAME                DESCRIPTION 
apache/skywalking-oap-server    Apache SkyWalking OAP Server 
apache/skywalking-ui        Apache SkyWalking Web UI 

拉取

docker pull apache/skywalking-oap-server 
docker pull apache/skywalking-ui

啟動容器

docker run \
--name skywalking \
 -d \
 -p 11800:11800 \
 -p 12800:12800 \
 --restart always \
 --link elasticsearch:elasticsearch \
 -e TZ=Asia/Shanghai \
 -e SW_STORAGE=elasticsearch \
 -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
 apache/skywalking-oap-server 

docker run \
--name skywalking-ui \
-d \
 -p 7070:8080 \
--link skywalking:skywalking \
 -e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=skywalking:12800 \
 --restart always \
apache/skywalking-ui \

地址為 http://內網宿主機ip:7070
連線地址為:內網宿主機ip:11800

agent 映象使用:

待補充

使用

Java Agent簡介

簡單說:我們可以使用agent技術構建一個獨立於應用程式的代理程式(即為Agent),用來協助監測、執行甚至替換其他JVM上的程式。使用它可以實現虛擬機器級別的AOP功能。

SpringBoot 使用 Java Agent

首先將安裝目錄下的agent目錄全部拷貝到你的專案資料夾下

接著(IDEA為例),改為你的地址即可

-javaagent:D:\Project\jiangsu-unified-platform\apache-skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=jiangsu-bid-service
-Dskywalking.collector.backend_service=192.168.11.137:11800

在這裡插入圖片描述

啟動專案,日誌已經出現了。

在這裡插入圖片描述

重新整理頁面,已經註冊了。

在這裡插入圖片描述

現在點選一個請求測試下,你可以點開各個頁面,檢視資訊了。

在這裡插入圖片描述

請求路徑分析

在這裡插入圖片描述

正常,需要配合閘道器使用。
將外掛放入,然後和之前一樣配置下,修改下service的名稱。

在這裡插入圖片描述

這裡我是JDK11 啟動報錯

java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
	at org.apache.skywalking.apm.dependencies.io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31)
	at org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:224)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	...
	java.lang.IllegalAccessException: class org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$6 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @74960bfa
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
	at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
	at java.base/java.lang.reflect.Method.invoke(Method.java:558)
	at org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$6.run(PlatformDependent0.java:334)
	at java.base/java.security.AccessController.doPrivileged(Native Method)

但是沒影響。請求後,檢視拓撲圖,呼叫了哪些元件一目瞭然。

在這裡插入圖片描述

總結

到此這篇關於Spring Cloud 整合Apache-SkyWalking實現鏈路跟蹤的方法的文章就介紹到這了,更多相關Spring 鏈路跟蹤內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!