一、前言
SkyWalking針對的是微服務和分布式服務,包括現(xiàn)在的容器化。在這樣的環(huán)境中,應用間依賴關系復雜多變,無論是設計、開發(fā)還是運維團隊,都不具備對系統(tǒng)實際關系和運行情況的理解能力。主流大型企業(yè)的內(nèi)部系統(tǒng)都有幾十個子系統(tǒng),其中有上百個服務和上千個實例在運行,理解這套系統(tǒng)的依賴關系是SkyWalking要解決的第一大問題。
Skywalking創(chuàng)始人是中國人吳晟,他是Apache軟件基金會第一位中國董事。
GitHub地址:https://github.com/apache/skywalking
二、安裝運行
# 下載源碼
git clone https://github.com/apache/skywalking.git
cd skywalking/
# 切換分支
git checkout v8.5.0
git submodule init
# 這里容易超時,注意檢查,可以多試幾次
git submodule update
# maven編譯 windows
mvnw clean package -DskipTests
# maven編譯 mac
./mvnw clean package -DskipTests
編譯時間比較長(運氣不好要半個小時),請耐心等待。所有打出來的包都在目錄/dist 下
解壓/dist/apache-skywalking-apm-bin.tar.gz
# 運行
sh startup.sh
三、使用
SkyWalking的使用是無代碼侵入的,而這種無侵入是基于Java的JavaAgent技術。
JavaAgent在字節(jié)碼文件生成Class對象之前對字節(jié)碼文件進行修改。
使用方法就是添加-javaagent:xxx.jar。如java -javaagent:xxx.jar -jar test.jar
# 添加JavaAgent
-javaagent:${absolute path}/skywalking-agent.jar
# 后面?zhèn)魅敕彰Q參數(shù)
-Dskywalking.agent.service_name=serviceName
Idea中 添加JavaAgent:
-javaagent:/Users/liulihu/workplace/development/blog/tools/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=consumer-service

然后進行多次請求(有時候要等一兩分鐘才能同步過來),可以在監(jiān)控臺看到監(jiān)控信息。



四、結(jié)語
這里這是先嘗個鮮,后續(xù)有時間再詳細說一下JavaAgent原理和Skywalking的實際使用。
源碼地址:https://github.com/tigerleeli/xiaohuge-blog/tree/master/spring-cloud-alibaba-skywalking
同步微信公眾號:小虎哥的技術博客