再續(xù)APM-Skywalking

寫這篇文章出發(fā)點(diǎn)是因?yàn)橛⑷荆覈L試了Pinpoint這樣的APM發(fā)現(xiàn)阴孟,我部署后根本拿不到相關(guān)的數(shù)據(jù),而且網(wǎng)上的參考資料税迷,基本上沒有價值永丝,都是抄襲官網(wǎng)的,我也查看了Pinpoint官方文檔也不知道怎么樣解決箭养,我的問題是Pinpoint agent(1.8.0)添加到了tomcat中慕嚷,在web界面就只識別了tomcat,至于里面的數(shù)據(jù)就沒有獲取到。(據(jù)說是從1.6版本后喝检,改了相關(guān)通訊交互方式嗅辣,直到現(xiàn)在我還是沒有找到解決方案。)

因?yàn)橛龅竭@樣的困難挠说,所以轉(zhuǎn)而選取同類型的APM-Skywalking來進(jìn)行研究澡谭。

目標(biāo)

其實(shí)換過來思考,無論采用什么樣的APM來做應(yīng)用性能監(jiān)控主要都是想解決以下問題:

  • 主動分布式鏈路追蹤
  • 應(yīng)用級別性能監(jiān)控(jvm等)
  • 低侵入
  • 容易二次開發(fā)相關(guān)插件
  • 對相關(guān)服務(wù)器性能占比較小

選型

方案 cat zipkin Pinpoint SkyWalking
依賴 Java 6 7 8损俭、Maven 3+ MySQL 5.6 5.7蛙奖、Linux 2.6+ Hadoop可選 Java 6,7杆兵,8 Maven3.2+ RabbitMQ Java 6雁仲,7,8 Maven3+ Hbase0.94+ Java 6琐脏,7攒砖,8 Maven3.0+ Nodejs Zookeeper Elasticsearch
實(shí)現(xiàn)方 式 代碼埋點(diǎn)(攔截器,注解日裙,過濾器等) 攔截請求吹艇,發(fā)送(HTTP,mq)數(shù)據(jù)至zipkin服務(wù) Java探針昂拂,字節(jié)碼增強(qiáng) Java探針受神,字節(jié)碼增強(qiáng)
存儲 Mysql , Hdfs in-memory , Mysql 政钟, Cassandra , Elasticsearch HBase Elasticsearch , H2
jvm監(jiān)控 不支持 不支持 支持 支持
trace查詢 支持 支持 需要二次開發(fā) 支持
侵入 高樟结,需要埋點(diǎn) 高养交,需要開發(fā)
部署成本 較高

針對業(yè)務(wù)情況,主要重點(diǎn)關(guān)注PinpointSkyWalking,由于Pinpoint我沒有調(diào)通瓢宦,進(jìn)而研究SkyWalking碎连。

APM-Skywalking

Skywalking是國人-吳晟大佬個人開源的項(xiàng)目,并且被搜錄到了Apache基金會當(dāng)中持續(xù)開源驮履。

官方github地址:https://github.com/apache/incubator-skywalking

希望看到文章覺得不錯幫大佬點(diǎn)亮下小星星呀

官方體驗(yàn)地址:http://106.75.237.45:8080/

借用官方的原理圖

image.png

SkyWalking是一個開源的APM系統(tǒng)鱼辙,包括監(jiān)控,跟蹤玫镐,診斷Cloud Native架構(gòu)中分布式系統(tǒng)的功能倒戏。核心功能如下。

  • 服務(wù)恐似,服務(wù)實(shí)例杜跷,端點(diǎn)指標(biāo)分析
  • 根本原因分析
  • 服務(wù)拓?fù)鋱D分析
  • 服務(wù),服務(wù)實(shí)例和端點(diǎn)依賴性分析
  • 檢測到緩慢的服務(wù)和端點(diǎn)
  • 性能優(yōu)化
  • 分布式跟蹤和上下文傳播
  • 報警

截至到目前,Skywalking已經(jīng)發(fā)布了6.0.0-α版本葛闷,從這個版本開始已經(jīng)內(nèi)置了H2數(shù)據(jù)憋槐,并且先比5.0重構(gòu)了后端內(nèi)核,應(yīng)該算是比較大的改變淑趾。

下載頁面:http://skywalking.apache.org/downloads/

簡單搭建

根據(jù)情況選擇適合的解壓包阳仔,進(jìn)行解壓。(我下載的是windows的zip)

解壓后

image.png

其中agent文件夾是探針,包含整個目錄扣泊,請不要改變目錄結(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
         .....
    skywalking-agent.jar
  • 所有插件都在/plugins文件夾中近范。當(dāng)插件jar在那里時它是活動的。刪除插件jar旷赖,它被禁用顺又。
  • 默認(rèn)日志輸出文件夾是/logs。
  • 配置文件在/config文件夾中等孵。

Java代理安裝

Linux Tomcat 7, Tomcat 8

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/bin/catalina.bat.第一行添加

set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"

JAR
運(yùn)行jar包稚照,需要添加-javaagent參數(shù)來進(jìn)行啟動

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

當(dāng)然更多java代理請參考官方文檔

https://github.com/apache/incubator-skywalking/blob/v6.0.0-alpha/docs/en/setup/service-agent/java-agent/README.md

我本地的示例

image.png

配置agent/config配置agent.application_code=xxl-job為自己的應(yīng)用名

image.png

后端和UI

SkyWalking后端分發(fā)包包括以下部分

  • bin / cmd腳本,在/bin文件夾中俯萌。包括用于后端服務(wù)器和UI啟動的啟動linux shellWindows cmd的啟動腳本果录。
  • 后端配置,在/config文件夾中咐熙。包括后臺的設(shè)置文件弱恒,這些文件application.ymllog4j.xmlalarm-settings.yml棋恼。大多數(shù)打開的設(shè)置都在這些文件中返弹。
  • 后端庫,在/oap-libs文件夾中爪飘。后端的所有jar文件都在其中义起。
    Webapp env,在webapp文件夾中师崎。UI前端jar文件位于此處及其webapp.yml設(shè)置文件中默终。

快速開始

要求:JDK8

使用bin/startup.sh(或cmd)在默認(rèn)設(shè)置中啟動后端和UI

  • 存儲,默認(rèn)使用H2犁罩,為了確保齐蔽,不需要進(jìn)一步部署。

  • 后端偵聽0.0.0.0/11800gRPC API和0.0.0.0/12800http rest API床估。在Java含滴,.NetCore,Node.js丐巫,Istio代理/探測器中蛙吏,將gRPC服務(wù)地址設(shè)置為ip/host:11800源哩。(ip / host是后端所在的位置)

  • UI偵聽8080端口并請求127.0.0.1/12800執(zhí)行GraphQL查詢。

分布式部署后端和UI

image.png
  • 所有本機(jī)代理和探測器(基于語言或網(wǎng)狀探測器)都使用gRPC服務(wù)(core/default/gRPC*in application.yml)將數(shù)據(jù)報告給后端鸦做。此外励烦,支持JSON格式的jetty服務(wù)。

  • UI使用GraphQL(HTTP)查詢來訪問Jetty服務(wù)(core/default/rest*in application.yml)中的后端泼诱。

后端設(shè)置文檔參考

https://github.com/apache/incubator-skywalking/blob/v6.0.0-alpha/docs/en/setup/backend/backend-setup.md

UI設(shè)置

啟動腳本也在/bin/webappService.sh(.bat)

UI的設(shè)置文件 webapp/webapp.yml中坛掠。它由三部分組成。

1治筒、服務(wù)啟動端口
2屉栓、連接后端的配置
3、設(shè)置用戶名耸袜,密碼

server:
  port: 8080

collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    # Point to all backend's restHost:restPort, split by , 
    listOfServers: 10.2.34.1:12800,10.2.34.2:12800

security:
  user:
    # username
    admin:
      # password
      password: admin

常見問題解答

https://github.com/apache/incubator-skywalking/tree/master/docs/en/FAQ

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末友多,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堤框,更是在濱河造成了極大的恐慌域滥,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜈抓,死亡現(xiàn)場離奇詭異启绰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)沟使,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門委可,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腊嗡,你說我怎么就攤上這事着倾。” “怎么了燕少?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵卡者,是天一觀的道長。 經(jīng)常有香客問我棺亭,道長虎眨,這世上最難降的妖魔是什么蟋软? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任镶摘,我火速辦了婚禮,結(jié)果婚禮上岳守,老公的妹妹穿的比我還像新娘凄敢。我一直安慰自己,他們只是感情好湿痢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布涝缝。 她就那樣靜靜地躺著扑庞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拒逮。 梳的紋絲不亂的頭發(fā)上罐氨,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音滩援,去河邊找鬼栅隐。 笑死,一個胖子當(dāng)著我的面吹牛玩徊,可吹牛的內(nèi)容都是我干的租悄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼恩袱,長吁一口氣:“原來是場噩夢啊……” “哼泣棋!你這毒婦竟也來了送矩?” 一聲冷哼從身側(cè)響起抑淫,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤都办,失蹤者是張志新(化名)和其女友劉穎症副,沒想到半個月后呼伸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體题画,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闻坚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年妆丘,在試婚紗的時候發(fā)現(xiàn)自己被綠了棚辽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片技竟。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屈藐,靈堂內(nèi)的尸體忽然破棺而出榔组,到底是詐尸還是另有隱情,我是刑警寧澤联逻,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布搓扯,位于F島的核電站,受9級特大地震影響包归,放射性物質(zhì)發(fā)生泄漏锨推。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一公壤、第九天 我趴在偏房一處隱蔽的房頂上張望换可。 院中可真熱鬧,春花似錦厦幅、人聲如沸沾鳄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽译荞。三九已至瓤的,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吞歼,已是汗流浹背圈膏。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留篙骡,地道東北人本辐。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像医增,于是被迫代替她去往敵國和親慎皱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

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