分佈式調用鏈調研(pinpoint,skywalking,jaeger,zipkin等對比)

1. APM簡述php

    APM (Application Performance Management)是對企業的應用系統進行實時監控,它是用於實現對應用程序性能管理和故障管理的系統化的解決方案。html

 

2.APM主要解決的問題:java

  1. 集中式度量系統
  2. 分佈式全連接追蹤系統
  3. 集中式日誌系統(elk)

......node

 

3.分佈式調用追蹤(APM)一覽mysql

  1. google的Drapper--未開源,最先的APM
  2. 阿里-鷹眼--未開源
  3. 大衆點評——CAT--跨服務的跟蹤功能與點評內部的RPC框架集成,這部分未開源且項目在2014.1已經中止維護。服務粒度的監控,經過代碼埋點的方式來實現監控,好比: 攔截器,註解,過濾器等,對代碼的侵入性較大,集成成本較高。
  4. Hydra-京東: 與dubbo框架集成,對於服務級別的跟蹤統計,現有業務能夠無縫接入。對於細粒度的興趣點,須要業務人員手動添加.開源項目已於2013年6月中止維護
  5. PinPoint-naver,字節碼探針技術,代碼無侵入,體系完善不易修改,支持java,技術棧支持dubbo.其餘語言社區支援中
  6. zipkin--java方便集成於springcloud,社區支持的插件也包括dubbo,rabbit,mysql,httpclient等(https://github.com/openzipkin/brave/tree/master/instrumentation),同時支持php,go,js等語言客戶端,界面功能較爲簡單,自己無告警功能,可能須要二次開發。代碼入侵度小。
  7. uber-jaeger, Jaeger支持java/c++/go/node/php,在界面上較爲完善(對比zipkin),可是也無告警功能。代碼入侵度小。dubbo目前無插件支持,可二次開發。
  8. skywalking -華爲,相似於PinPoint,目前還在apache孵化中,網上吞吐量對比中強於pinpoint,實際未驗證。自己支持dubbo

 

 

 

4.方案對比c++

 

 

pinpointgit

zipkingithub

jaegerspring

skywalkingsql

OpenTracing兼容

客戶端支持語言

java、php

java,c#,go,php等

java,c#,go,php等

Java, .NET Core, NodeJS and PHP

存儲

hbase

ES,mysql,Cassandra,內存

ES,kafka,Cassandra,內存

ES,H2,mysql,TIDB,sharding sphere

傳輸協議支持

thrift

http,MQ

udp/http

gRPC

ui豐富程度

實現方式-代碼侵入性

字節碼注入,無侵入

攔截請求,侵入

攔截請求,侵入

字節碼注入,無侵入

擴展性

trace查詢

不支持

支持

支持

支持

告警支持

支持

不支持

不支持

支持

jvm監控

支持

不支持

不支持

支持

性能損失

 

 

5.各方案參考連接

    1.pinpoint-naver

    github: https://github.com/naver/pinpoint

    docker快速體驗:https://github.com/naver/pinpoint-docker

 

    2.zipkin-推特:

    github: https://github.com/openzipkin/zipkin

    頁面詳解:https://blog.csdn.net/u012394095/article/details/82585863

    zipkin於php對接:https://www.colabug.com/1872361.html

 

    3.jaeger-uber

    部分參考資料:

    jaeger簡介,部署,入門實踐 http://www.javashuo.com/article/p-vsitlayu-kz.html

    jaeger——java實現 http://www.javashuo.com/article/p-akkfjcqa-go.html

    Uber分佈式追蹤系統Jaeger使用介紹和案例(PHP Hprose Go 跨語言調用)

    https://segmentfault.com/a/1190000011636957

    全鏈路監控Jaeger搭建實戰 https://www.jianshu.com/p/ffc597bb4ce8

    jaeger官網快速開始 https://www.jaegertracing.io/docs/1.8/getting-started/

 

    4.skywalking(推薦)

    github: https://github.com/apache/incubator-skywalking

    SkyWalking 分佈式追蹤系統 https://www.jianshu.com/p/2fd56627a3cf

    Apache SkyWalking 5.0中文版圖文詳解使用手冊

    http://skywalking.apache.org/zh/blog/2018-12-18-Apache-SkyWalking-5-0-UserGuide.html

    skywalking學習筆記 http://www.javashuo.com/article/p-kfqwvqqh-dp.html

 

 

6.參考資料

 

    分佈式鏈路追蹤技術對比 http://www.javashuo.com/article/p-uiycrkus-ey.html

    回到網易後開源 APM 技術選型與實戰 https://www.infoq.cn/article/apm-Pinpoint-practice

    zipkin vs jaeger http://www.javashuo.com/article/p-ywqoanff-br.html

    調用鏈選型之Zipkin,Pinpoint,SkyWalking,CAT https://www.jianshu.com/p/0fbbf99a236e

相關文章
相關標籤/搜索