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

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



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