基于 Skywalking 部署應(yīng)用性能監(jiān)控

今天我們就著重講一講如何基于 Skywalking 來快速搭建一套應(yīng)用性能監(jiān)控平臺

walkingfunny.com.png

一雏婶、Skywaling 介紹

Skywalking是由國內(nèi)開源愛好者吳晟開源并提交到Apache孵化器的開源項目器予, 2017年12月SkyWalking成為Apache國內(nèi)首個個人孵化項目, 2019年4月17日SkyWalking從Apache基金會的孵化器畢業(yè)成為頂級項目狈谊, 目前SkyWalking支持Java、 .Net沟沙、 Node.js河劝、 go、 python等探針矛紫, 數(shù)據(jù)存儲支持MySQL赎瞎、 ElasticSearch等, SkyWalking與Pinpoint相同颊咬, 對業(yè)務(wù)代碼無侵入煎娇, 不過探針采集數(shù)據(jù)粒度相較于Pinpoint來說略粗二庵, 但性能表現(xiàn)優(yōu)秀, 目前SkyWalking增長勢頭強勁缓呛, 社區(qū)活躍催享, 中文文檔齊全, 沒有語言障礙哟绊, 支持多語言探針因妙, 這些都是 SkyWalking的優(yōu)勢所在, 還有就是SkyWalking支持很多框架票髓, 包括很多國產(chǎn)框架攀涵, 例如, Dubbo洽沟、 gRPC以故、 SOFARPC 等等, 同時也有很多開發(fā)者正在不斷向社區(qū)提供更多插件以支持更多組件無縫接入SkyWalking裆操。

官網(wǎng)地址:https://skywalking.apache.org/

二怒详、Skywalking 同類產(chǎn)品比較

1. Skywalking 的特點介紹:

  • 可以實現(xiàn)從前端到后端(多種語言)請求追蹤,指標數(shù)據(jù)采集踪区,日志記錄等多項功能昆烁。

  • 多語言自動探針, 支持Java缎岗、 GO静尼、 Python、 PHP传泊、 NodeJS鼠渺、 LUA、 Rust等客戶端眷细。

  • 內(nèi)置服務(wù)網(wǎng)格可觀察性系冗, 支持從Istio+Envoy Service Mesh收集和分析數(shù)據(jù)。

  • 模塊化架構(gòu)薪鹦, 存儲掌敬、 集群管理、 使用插件集合都可以進行自由選擇池磁。

  • 支持自定義告警配置奔害,目前是通過配置文件的形式。

  • 可視化效果豐富地熄,可以自定義多種圖表進行拖拽組合展現(xiàn)华临。

    整體架構(gòu)圖大致如下:

    image

數(shù)據(jù)通過push/pull方式,從不同的應(yīng)用側(cè)上報到Transport Layer端考,然后經(jīng)過接收層匯聚到聚合服務(wù)降采樣計算雅潭,最終落庫展現(xiàn)揭厚,整個過程可以在單獨的一個 Java 進程中部署,也可以采用分布式架構(gòu)(混合模式)來部署扶供,根據(jù)接入的數(shù)量來選擇筛圆。

簡化架構(gòu)如下:

image

2. Skywalking 較同類其他產(chǎn)品比較:

image

參照對比結(jié)果,其實我們不難發(fā)現(xiàn)椿浓,不管是在語言支持的豐富度還是性能上太援,Skywalking都具有一定的優(yōu)勢,并且就國內(nèi)的行業(yè)背景來看扳碍,絕大部分的應(yīng)用都是基于Java開發(fā)的提岔,Skywalking本身OAP服務(wù)就是基于Java開發(fā)的,這一點具有非常天然的優(yōu)勢笋敞。


三碱蒙、IDEA開發(fā)環(huán)境的運行與配置:

1. IDEA 導(dǎo)入 Skywalking 源碼,mvn編譯成功

不要去 github 直接 clone 夯巷,下載地址:https://dlcdn.apache.org/skywalking/9.3.0/apache-skywalking-apm-9.3.0-src.tgz

image

啟動模塊就是 server-starter OAPServerStartUp 類赛惩,注意配置文件:application.yml 的相關(guān)配置,如果只是運行鞭莽,可以按照默認的配置來直接 main 方法啟動坊秸,如果首次體驗也可以修改 storage 模塊的存儲類型麸祷,修改對應(yīng)的數(shù)據(jù)庫地址就可以澎怒,啟動成功后,會全部自動創(chuàng)建完所有的數(shù)據(jù)庫表

注啟動完成后阶牍,會看到對應(yīng)的數(shù)據(jù)上報端點日志顯示創(chuàng)建成功:

image

注意配置文件的設(shè)置:

storage:
selector: mysql # the mysql storage will actually be activated, while the h2 storage takes no effect
h2:
  properties:
    jdbcUrl: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db;DB_CLOSE_DELAY=-1}
    dataSource.user: ${SW_STORAGE_H2_USER:sa}
  metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
mysql:
  properties:
    jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
    dataSource.user: ${SW_DATA_SOURCE_USER:root}
    dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
    dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
    dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
    dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
    dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
  metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
# other configurations

2. 前端編譯:

上述步驟下載的源碼包直接就已經(jīng)包含了前端的源碼喷面,在 skywalking-ui 目錄下,訪問端口:8080

首先安裝依賴包

// 第一步
npm install

安裝成功后走孽,直接運行

// 第二步
npm run serve

實際訪問地址:http://localhost:8080


3. 探針安裝:以 Java 探針為例:

探針下載地址:https://skywalking.apache.org/downloads/

Java探針的包結(jié)構(gòu)如下

+-- agent
    +-- activations
         apm-toolkit-log4j-1.x-activation.jar
         apm-toolkit-log4j-2.x-activation.jar
         apm-toolkit-logback-1.x-activation.jar
         ...
    +-- config
         agent.config  
    +-- plugins
         apm-dubbo-plugin.jar
         apm-feign-default-http-9.x.jar
         apm-httpClient-4.x-plugin.jar
         .....
    +-- optional-plugins
         apm-gson-2.x-plugin.jar
         .....
    +-- bootstrap-plugins
         jdk-http-plugin.jar
         .....
    +-- logs
    skywalking-agent.jar
  • Linux Tomcat 7, Tomcat 8, Tomcat 9 配置:修改配置文件 tomcat/bin/catalina.sh 第一行
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
  • Windows Tomcat 7, Tomcat 8, Tomcat 9 配置:修改配置文件 tomcat/bin/catalina.bat 第一行
set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
  • Jar 文件惧辈,比如 SpringBoot 打成的FatJar 形式,需要啟動時添加啟動參數(shù)
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
  • Jetty 容器磕瓷,修改 jetty.sh 文件盒齿,增加 -javaagent 參數(shù)到啟動命令
export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"

四、最終展現(xiàn)效果

非常直觀的鏈路拓撲困食,可以快速定位問題的根源

image

簡潔的概覽全局頁

image

五边翁、寫在最后

如果大家有任何關(guān)于Skywalking不管是部署,試用硕盹,甚至生產(chǎn)環(huán)境遇到的各種問題符匾,都可以添加小觀縱的公眾號進入群聊,匯聚行業(yè)大咖一起交流瘩例。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啊胶,一起剝皮案震驚了整個濱河市甸各,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焰坪,老刑警劉巖趣倾,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琳彩,居然都是意外死亡誊酌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門露乏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碧浊,“玉大人,你說我怎么就攤上這事瘟仿∠淙瘢” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵劳较,是天一觀的道長驹止。 經(jīng)常有香客問我,道長观蜗,這世上最難降的妖魔是什么臊恋? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任褂乍,我火速辦了婚禮撒璧,結(jié)果婚禮上传藏,老公的妹妹穿的比我還像新娘鼎姊。我一直安慰自己哥艇,他們只是感情好导盅,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布艳悔。 她就那樣靜靜地躺著集嵌,像睡著了一般梧兼。 火紅的嫁衣襯著肌膚如雪放吩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天羽杰,我揣著相機與錄音渡紫,去河邊找鬼。 笑死考赛,一個胖子當著我的面吹牛惕澎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播欲虚,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼集灌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欣喧,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腌零,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唆阿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體益涧,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年驯鳖,在試婚紗的時候發(fā)現(xiàn)自己被綠了闲询。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡浅辙,死狀恐怖扭弧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情记舆,我是刑警寧澤鸽捻,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站泽腮,受9級特大地震影響御蒲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诊赊,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一厚满、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碧磅,春花似錦碘箍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽团搞。三九已至严望,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逻恐,已是汗流浹背像吻。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留复隆,地道東北人拨匆。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像挽拂,于是被迫代替她去往敵國和親惭每。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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