天天看點

開源APM之Skywalking和Pinpoint的實測對比

一、Portal功能對象

Skywalking(簡稱SW)有如下菜單和功能:

  • Dashboard(儀表界面)
  1. 監控執行個體的數量資訊
  2. 請求熱力圖(反映:請求數量和響應時間)
  3. 應用平均告警數量
  4. 應用吞吐量(cpm,每分鐘調用次數)
  5. 最慢的服務Top10
  • Topology(拓撲界面)
  1. 使用者、應用、各種中間件的調用關系圖
  2. 應用之間的調用吞吐量(cpm)和平均響應時間(rt)
  3. 應用的服務可用率(SLA)
  • Application(應用界面)
  1. 應用基本資訊(ip、host等)
  2. 應用調用關系圖
  3. 曆史執行個體程序清單
  4. 執行個體程序的平均吞吐量
  5. 執行個體程序的平均響應時間
  6. 執行個體程序的CPU、記憶體、JVM情況
  7. 執行個體程序的請求量走勢圖
  8. 應用的慢服務Top10
  • Service(服務界面)
  1. 服務平均吞吐量(cpm)、平均響應時間(RT)、可用率(SLA)
  2. 服務依賴關系圖以及調用的平均吞吐量和響應時間
  • Alarm(告警界面)
  1. 顯示伺服器、應用、服務的告警資訊
  • Trace(鍊路追蹤界面)
  1. 支援按各種條件查詢調用
  2. 檢視調用的span鍊路資訊(時序圖)
  3. 可以看到各span的耗時、異常和其他資訊(不同的span支援不同的資訊,例如DB類型的,可以列印出sql)

部分截圖

sw-portal

開源APM之Skywalking和Pinpoint的實測對比

sw-trace

開源APM之Skywalking和Pinpoint的實測對比

sw-app

開源APM之Skywalking和Pinpoint的實測對比

Pinpoint(簡稱PP)有如下菜單和功能:

  • 主儀表界面
  1. 應用調用關系圖
  2. 請求熱力點圖和柱狀圖(反映:請求數量和響應時間)
  3. 時間段内總的調用成功、失敗次數
  4. 響應時間統計圖
  5. 支援按時間選擇檢視調用清單(跳到鍊路追蹤頁面)
  • 鍊路追蹤界面
  1. 檢視調用的span鍊路資訊(時序圖)
  2. 可以看到各span的耗時和類名、方法名(如果DB操作,可以列印出sql和參數)
  • 檢閱界面(inspector)
  1. 看不太懂,隻知道有非常詳細的JVM監控資訊

部分截圖

pp-portal

開源APM之Skywalking和Pinpoint的實測對比

pp-trace

開源APM之Skywalking和Pinpoint的實測對比

二、個人使用感受和優缺點對比

Skywalking的不足:

1、針對單個應用的請求熱力圖,隻能看到請求數量,看不到響應時間分布。

2、應用界面,不能直覺看到時間段内的請求總數量及錯誤數量。

3、JVM的監控資訊,SW沒有PP全面。

4、調用鍊資訊,SW預設隻顯示入口群組件(如MySQL)調用處的資訊,而PP還會顯示SpringBean方法的調用資訊,更豐富實用,當然SW也可以開啟更詳細的資訊,但是會顯示Bean内部方法的所有調用,顯得備援(例如 A調B調C,顯示B和C被調用的入口方法就可以了,不用顯示B調用自己内部方法的過程)。

5、SW更新快,BUG較多,值得優化和改進的地方也很多,雖然功能強,但是用起來不一定順手和實用,還需要時間斟酌和打磨。相對而言,PP功能成熟,功能雖然少,但是都比較經典,用起來比較順手。

6、SW調用鍊裡面DB類型隻能看到SQL,看不到參數化SQL的傳值,而PP可以。

7、PP支援實時監控、頁面實時重新整理,而SW不支援。

Pinpoint的不足:

1、不支援異步執行的調用鍊追蹤(比如多線程、MQ),而SW通過注解可以支援。

2、功能比較少,例如缺少平均響應、平均吞吐量等資料,缺少慢服務的統計。

3、調用鍊資訊,可以擴充和豐富的程度,要低于SW(SW可以通過注解擴充)。

另外:

  1. 對應用性能的影響,實測兩者差不多,SW稍微好一些(吞吐量比PP大概高5%——我們做過單個span的性能測試,具體資料就不貼出來了)。
  2. 實時告警通知,暫未測試,我個人希望有 服務異常、JVM異常、慢服務、高負載等的訂閱和通知功能,然而貌似這兩個APM都沒有很直覺的展示出有這方面的能力。

總的來說:

  1. PP相比後起之秀SW,要更穩定、易用,而且并沒有明顯短處;
  2. SW号稱的異步調用鍊追蹤(是有代碼侵入性的),我認為PP隻要稍加改進也可以支援;
  3. 小公司,推薦用PP,等SW成熟之後再說吧(目前為beta版);
  4. 有二次開發實力的公司,需進一步對比兩者的可擴充性、二次開發效率,選擇一個更能滿足自己定制需求的APM。

版本資訊:

Pinpoint 1.6.2

Skywalking 5.0.0-Beta

繼續閱讀