skywalking本地調(diào)試

源代碼地址

skywalking是一款很優(yōu)秀的監(jiān)控系統(tǒng),采用代理方式基于切面編程來攔截請求進行監(jiān)控數(shù)據(jù)記錄恩敌,架構采用CS模式

server端構建過程

此文不做原理解析,只講大概入門思路海洼,server里面同時也包含了后端管理和監(jiān)控UI頁面竖慧,基于spring boot開發(fā),項目名稱是apm-webapp

工具

工欲善其事必先利其器座每,因此在構建之前需要說明一些需要的工具:

JDK 11:官方提倡
Maven3 >3.6
Git
npm
nodejs >12.0.0
IDEA

下載源代碼

git clone --recurse-submodules https://github.com/apache/skywalking.git
cd skywalking/
./mvnw clean package -DskipTests

git clone https://github.com/apache/skywalking.git
cd skywalking/
git submodule init
git submodule update

打開IDEA Terminal執(zhí)行Maven編譯命令,編譯前profiles需要勾選backend,windows:

 ./mvnw compile -Dmaven.test.skip=true

執(zhí)行完成之后摘悴,會生成許多源碼文件峭梳,因此我們需要將文件所在目錄設置為源碼目錄,便于IDEA在編譯時進行識別蹂喻。

設置源碼目錄
分別將下邊8個目錄設置為源碼目錄:


grpc-java and java folders in apm-protocol/apm-network/target/generated-sources/protobuf
grpc-java and java folders in oap-server/server-core/target/generated-sources/protobuf
grpc-java and java folders in oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/fbs
grpc-java and java folders in oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf
grpc-java and java folders in oap-server/exporter/target/generated-sources/protobuf
grpc-java and java folders in oap-server/server-configuration/grpc-configuration-sync/target/generated-sources/protobuf
grpc-java and java folders in oap-server/server-alarm-plugin/target/generated-sources/protobuf
antlr4 folder in oap-server/oal-grammar/target/generated-sources

設置方法如下(以apm-protocol/apm-network/target/generated-sources/protobuf為例):

在IDEA上找到該目錄-->右鍵-->Mark Directory as-->Generated Source Root

設置后對應目錄編程藍色葱椭,則表明設置成功。

注意:

  • 目前2023/7/23 的版本master最新的構建不過口四,只好checkout到8.8.x
  • receive-proto項目依賴的flatbuffers-compiler在阿里云鏡像找不到孵运,需要將版本從1.12.0.1修改為2.0.8,執(zhí)行完成再改回去執(zhí)行一次編譯就可以了窃祝!后來發(fā)現(xiàn)原因是沒有勾選windows掐松。
  • npm執(zhí)行報錯需要通過命令安裝依賴或者升級npm到12以上 npm i polyfill-object.fromentries,主要原因是apm-webapp pom文件使用的node版本太老需要修改為最新的20.5.0

編譯源代碼

分別對skywalking和skywalking-java進行編譯踱侣,skywalking-java編譯后會在skywalking-agent目錄生成skywalking-agent.jar粪小,后面我們會用到

./mvnw clean package -DskipTests

啟動OAP Server

運行OAP-server的org.apache.skywalking.oap.server.starter.OAPServerStartUp的#main(args)方法,啟動SkyWalking OAP Server,由于構建比較耗時抡句,啟動需要勾選啟動前不構建探膊。

  • 運行過程中報graphsql 初始化MetaDataQuery.getAllService報錯No TypeDefinition for type name Service,經(jīng)歷調(diào)試發(fā)現(xiàn)是生成的jar包query-graphql-plugin里面query-protocol目錄下的metadata.graphqls存在問題待榔,重新新install server-query-plugin項目后正常運行逞壁。

啟動SkyWalking UI

運行 apm-webapp 的 org.apache.skywalking.apm.webapp.ApplicationStartUp 的 #main(args) 方法流济,啟動 SkyWalking UI,由于構建比較耗時腌闯,啟動需要勾選啟動前不構建绳瘟。
瀏覽器打開 http://127.0.0.1:8080

演示項目

https://github.com/SkyAPMTest/skywalking-live-demo 下載演示項目

> git clone https://github.com/SkywalkingTest/skywalking-live-demo.git
> cd skywalking-live-demo 
> mvn clean package # build the live demo archive

演示項目基于Spring Boot搭建,ProjectA調(diào)用ProjectB,ProjectC,ProjectD姿骏,首先通過
啟動參數(shù)設置

-javaagent:/xxx/skywalking-java/skywalking-agent/skywalking-agent.jar
-Dskywalking.collector.grpc_channel_check_interval=2
-Dskywalking.collector.app_and_service_register_check_interval=2
-Dcollector.discovery_check_interval=2
-Dskywalking.collector.backend_service=localhost:11800
-Dskywalking.agent.service_name=business-zone::projectA
-Dskywalking.logging.level=info
-Dskywalking.plugin.toolkit.log.grpc.reporter.server_host=localhost
-Dskywalking.plugin.toolkit.log.grpc.reporter.server_port=11800
-Dskywalking.plugin.toolkit.log.grpc.reporter.max_message_size=10485760
-Dskywalking.plugin.toolkit.log.grpc.reporter.upstream_timeout=30

然后通過下面的方法啟動ProjectA

test.skywalking.springcloud.test.projecta.ProjectA#main

啟動后
瀏覽器打開 http://localhost/projectA/test

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末糖声,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子分瘦,更是在濱河造成了極大的恐慌蘸泻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘲玫,死亡現(xiàn)場離奇詭異悦施,居然都是意外死亡,警方通過查閱死者的電腦和手機去团,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門抡诞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人土陪,你說我怎么就攤上這事沐绒。” “怎么了旺坠?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵乔遮,是天一觀的道長。 經(jīng)常有香客問我取刃,道長蹋肮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任璧疗,我火速辦了婚禮坯辩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崩侠。我一直安慰自己漆魔,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布却音。 她就那樣靜靜地躺著改抡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪系瓢。 梳的紋絲不亂的頭發(fā)上阿纤,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音夷陋,去河邊找鬼欠拾。 笑死胰锌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的藐窄。 我是一名探鬼主播资昧,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荆忍!你這毒婦竟也來了榛搔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤东揣,失蹤者是張志新(化名)和其女友劉穎践惑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘶卧,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡尔觉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芥吟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侦铜。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钟鸵,靈堂內(nèi)的尸體忽然破棺而出钉稍,到底是詐尸還是另有隱情,我是刑警寧澤棺耍,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布贡未,位于F島的核電站,受9級特大地震影響蒙袍,放射性物質(zhì)發(fā)生泄漏俊卤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一害幅、第九天 我趴在偏房一處隱蔽的房頂上張望消恍。 院中可真熱鬧,春花似錦以现、人聲如沸狠怨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽佣赖。三九已至,卻和暖如春无宿,著一層夾襖步出監(jiān)牢的瞬間茵汰,已是汗流浹背枢里。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工孽鸡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹂午,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓彬碱,卻偏偏與公主長得像豆胸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巷疼,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容