skywalking與pinpoint全鏈路追蹤方案對(duì)比
由于公司目前有200多微服務(wù),微服務(wù)之間的調(diào)用關(guān)系錯(cuò)綜復(fù)雜,調(diào)用關(guān)系人工維護(hù)基本不可能實(shí)現(xiàn),需要調(diào)研一套全鏈路追蹤方案,初步調(diào)研之后選取了skywalking和pinpoint進(jìn)行對(duì)比;
選取skywalking和pinpoint對(duì)比的原因是:兩者都使用探針(agent)技術(shù)進(jìn)行信息采集,集成到項(xiàng)目?jī)?nèi)時(shí)不用修改業(yè)務(wù)代碼,避免造成后期難以推進(jìn)的問(wèn)題;
以下是進(jìn)行的一些維度的對(duì)比,主要從功能性需求和非功能性需求方面做參考:
功能性需求對(duì)比
skywalking pinpoint 備注
支持協(xié)議
Java, C#, PHP, Node.js
java,php
ui
兩種ui相類似,sw服務(wù)信息加載速度會(huì)快一些
擴(kuò)展性
都可自定義plugin,使用探針,都可以進(jìn)行擴(kuò)展,據(jù)說(shuō)sk擴(kuò)展性更好
存儲(chǔ)
支持各種類型存儲(chǔ),es,mysql,h2等
只支持hbase
警告
config/alarm-settings.xml設(shè)置警告規(guī)則
需要額外引入mysql發(fā)送警告
jvm監(jiān)控
都包含,pinpoint相對(duì)更全面一些,從頁(yè)面查看比較類似
跟蹤粒度
需要使用對(duì)應(yīng)的插件,可以到方法級(jí),展示sql,每個(gè)方法調(diào)用的時(shí)間
服務(wù)監(jiān)控
skywalking支持的維度有:CPU使用率,SLA,RT,CPM(Call Per Minutes)
Pinpoint支持的維度有:CPU使用率,Open File Descriptor,數(shù)據(jù)源,活動(dòng)線程數(shù),RT,TPS。
pinpoint更多
過(guò)濾追蹤
都是用ant風(fēng)格,sw有對(duì)應(yīng)的插件,更靈活
性能損耗
性能損耗sw少于pinpoint
支持中間件
1.支持開(kāi)源web容器
2.RPC框架支持更多
3.mq,多支持rocketMQ
4.不支持mssql和mariadb
5.redis支持Jedis,Redisson,Lettuce
1.支持幾乎所有web容器,
2.少于sw
4.RDBMS/nosql,好于sw
5.不支持redisson
6.不支持log4j2
公司當(dāng)前使用的resin
和karaf容器兩個(gè)是否支持
對(duì)代碼的侵入性
無(wú)侵入
無(wú)侵入
非功能性需求對(duì)比
skywalking
pinpoint
是否需要修改代碼
不需要
不需要
相關(guān)文檔
官網(wǎng)文檔比較全,支持中文,apache支持
英文文檔
社區(qū)
社區(qū)活躍,發(fā)起人是中國(guó)人
韓國(guó)人開(kāi)發(fā),活躍程度類似
發(fā)布方式
使用jar包,start.sh腳本啟動(dòng)
使用war包,依賴web容器
github start 數(shù) 9.1k 8.8k
skywalking對(duì)國(guó)產(chǎn)軟件的支持好于Pinpoint;
Pinpoint的優(yōu)勢(shì)在于:追蹤數(shù)據(jù)粒度非常細(xì)、功能強(qiáng)大的用戶界面,以及使用HBase作為存儲(chǔ)帶來(lái)的海量存儲(chǔ)能力。
skywalking的優(yōu)勢(shì)在于:非?;钴S的中文社區(qū),支持多種語(yǔ)言的探針,對(duì)國(guó)產(chǎn)開(kāi)源軟件非常全面的支持,以及使用es作為底層存儲(chǔ)帶來(lái)的強(qiáng)大的檢索能力,并且skywalking的擴(kuò)展性以及定制化要更優(yōu)于Pinpoint
從整體上來(lái)講,在進(jìn)行演示和討論的時(shí)候,大家普遍認(rèn)為,skywalking的界面比較現(xiàn)代化一些,pinpoint的功能更為強(qiáng)大;
其他一些方面提出的問(wèn)題,待近期補(bǔ)充:
后邊需要繼續(xù)調(diào)研的點(diǎn):
1.對(duì)公司現(xiàn)有技術(shù)棧,兩種方案的支持情況;
2.擴(kuò)展性及如何進(jìn)行擴(kuò)展,擴(kuò)展之后可以做哪些內(nèi)容;
3.采樣率如何配置
4.保存時(shí)間
5.采樣的策略
6.agent開(kāi)發(fā)方法
7.數(shù)據(jù)是否有遵循標(biāo)準(zhǔn)
8.nginx是否支持
另外,再討論的過(guò)程中,提到了一些問(wèn)題,
有同事提出是否可以用這個(gè)工具定位線上的具體都某一次請(qǐng)求的問(wèn)題?
答案是否定的,因?yàn)槿溌纷粉櫟亩ㄎ皇钦故菊w服務(wù)調(diào)用的拓?fù)鋱D,能夠從宏觀描述服務(wù)請(qǐng)求鏈路中哪個(gè)環(huán)節(jié)比較慢,給開(kāi)發(fā)者提供優(yōu)化程序的一個(gè)方向;
對(duì)于性能消耗,大家也有一些不同的看法,有的業(yè)務(wù)方,對(duì)于20%的性能損耗是不敏感的,但是對(duì)于當(dāng)前線上已經(jīng)負(fù)載比較高,且經(jīng)常有線上問(wèn)題的系統(tǒng),還需要性能消耗方面的調(diào)研;
- 相關(guān)評(píng)論
- 我要評(píng)論
-