apm監控分析及pinpoint和skywalking對比

一. 什麼是APM?python

  APM (Application Performance Management) 即應用性能管理,屬於IT運維管理(ITOM)範疇。主要是針對企業 關鍵業務的IT應用性能和用戶體驗的監測、優化,提升企業IT應用的可靠性和質量,保證用戶獲得良好的服務,降 低IT總擁有成本(TCO)。 mysql

 

 

 二. 介紹sql

(1)追蹤一切apache

  不管是業務服務仍是微服務,要作到收取流失的數據,還有全部組件健康檢查,還要作到數據的分析。服務器

 

 

 

服務關聯元數據架構

  監控是分層的,只知道一個服務有問題,並不能定位這個服務的根本緣由是什麼,就須要使用元數據。app

 

 

 

服務動態拓撲運維

   隨時間的推移去變化微服務

 

 

 

服務調用鏈分析性能

 

 

 

 

APM整體架構

   

 

 

 

APM核心能力

 

 

 

 

性能測試

 

 

 

 

構建「部署 + 監控 + 告警 + 報障」閉環

 

 

 

 

告警平臺

 

 

 

 

 

 

 

經過故障分類系統、支持組,快速將接入的各監控系統報障通知給相應維護人員, 並經過配置的SLA及組織架構,對未及時響應的報障進行上告處理,以達到卓越運維的目的。

 

 

 

 

大數據能力的充分釋放-自動異常點檢測

 

 

 

 

 

 

 

 

 

比較

1.代碼入侵性

  pinpoint和skywalking:基於字節碼注入技術,能夠作到徹底的代碼無侵入。對現有系統的改造極小。

  zipkin和cat:對代碼有必定的侵入性

2.社區比較

  pinpoint:韓國公司開發,在社區交流上會有必定滯後

  skywalking:剛完成apache孵化,已成爲 Apache 基金會頂級項目。skywalking徹底由國人主導開發,在國內社區至關活躍。咱們可以進入官方羣(Apache SkyWalking交流羣:392443393)

2,支持語言比較

  Pinpoint:只支持Java和PHP,

  skywalking:支持5種語言:Java, C#, PHP, Node.js, Go。若是公司的服務涉及到多個開發語言,那麼skywalking會是你更好的選擇。而且,若是你要實現本身的探針(好比python語言),skywalking的二次開發成本也比Pinpoint更低。

3,存儲比較

  在大數據方面,底層存儲架構決定上層功能。

  pingpoint:只支持hbase,這就意味着,使用pinpoint必須有能力運維住一套Hbase集羣。

  skywalking:支持es,h2,mysql,TiDb,sharding-sphere。可選類型比較多,能夠根據本身團隊的技術實力選擇。其實生產上來講仍是用es的較多。

  hbase和es比較,hbase強在存儲能力,es強在查詢能力。

4,UI比較

  原生ui上比較,pinpoint要比skywalking好。

  可是skywalking有一款第三方定製UI,作的又比pinpoint漂亮

 

 

5,JVM監控

  skywalking支持監控:Heap, Non-Heap, GC(YGC和FGC)。 Pinpoint可以監控的指標主要有:Heap, Non-Heap, FGC, DirectBufferMemory, MappedBufferMemory,可是沒有YGC。另外,Pinpoint還支持多個指標同一時間點查看的功能。以下圖所示:

  因此,對JVM的監控方面,Pinpoint更勝一籌。

6,服務監控

  包括操做系統,和部署的服務實例的監控。 Pinpoint支持的維度有:CPU使用率,Open File Descriptor,數據源,活動線程數,RT,TPS。 skywalking支持的維度有:CPU使用率,SLA,RT,CPM(Call Per Minutes)。 因此,這方面二者旗鼓至關,沒有明顯的差距。

7,跟蹤粒度比較

  Pinpoint在這方面作的很是好,跟蹤粒度很是細。以下圖所示,是Pinpoint對某個接口的trace信息:

 

 

  而同一個接口skywalking的trace信息以下圖所示:

 

 

 

 

 

  經過對比發現,在跟蹤粒度方面,Pinpoint更勝一籌。

8,過濾追蹤

  Pinpoint和skywalking均可以實現,並且配置的表達式都是基於ant風格。 Pinpoint在Web UI上配置 filter wizard 便可自定義過濾追蹤。 skywalking經過加載apm-trace-ignore-plugin插件就能自定義過濾跟蹤,skywalking這種方式更靈活,好比一臺高配服務器上有若干個服務,在共用的agent配置文件apm-trace-ignore-plugin.config中能夠配置通用的過濾規則,而後經過-D的方式爲每一個服務配置個性化過濾。

因此,在過濾追蹤方面,skywalking更勝一籌。

總結

  通過前面對skywalking和Pinpoint全方位對比後咱們發現,對於兩款很是優秀的APM軟件,有一種既生瑜何生亮的感受。Pinpoint的優點在於:追蹤數據粒度很是細、功能強大的用戶界面,以及使用HBase做爲存儲帶來的海量存儲能力。而skywalking的優點在於:很是活躍的中文社區,支持多種語言的探針,對國產開源軟件很是全面的支持,以及使用es做爲底層存儲帶來的強大的檢索能力,而且skywalking的擴展性以及定製化要更優於Pinpoint:

  若是你有海量的日誌存儲需求,推薦Pinpoint。若是你更看重二次開發的便捷性,推薦skywalking。最後,參考上面的對比,結合你的需求,哪些不能妥協,哪些能夠捨棄,從而更好的選擇一款最適合你的APM軟件。

相關文章
相關標籤/搜索