天天看點

阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別

阿裡雲上最近推出了一款新産品 鍊路追蹤 ,專注于幫助開發者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發診斷效率,并省去使用者搭建各類鍊路監控應用(Jaeger, Zipkin等)和相關存儲服務(Hbase, ElasticSearch等)的成本。
阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別

分布式應用環境下的鍊路追蹤,并不是一個新話題。在早些時間,阿裡雲産品

業務實時監控服務

也有類似功能推出。那麼,鍊路追蹤和業務實時監控服務 在産品功能層面到底有什麼樣的差別和聯系?本文将給出概要說明。

以下從産品定位,接入方式,以及使用成本 三個方面來比較

兩款産品。

産品定位:應用性能管理 (APM) vs 分布式鍊路追蹤 (Distributed Tracing)

從功能定位上看,業務實時監控服務 定位于重量級的應用性能管理類(Application Performance Management, 簡稱APM)工具,包含的功能相對豐富。應用程式通過挂載Agent方式接入監控,Agent内部功能相對豐富,包括性能監控,使用者體驗監控,鍊路追蹤,故障診斷,等多種功能。

而鍊路追蹤定位于分布式鍊路追蹤解決方案工具,功能比較專一,專業面向解決分布式環境下的鍊路追蹤這一個問題。使用者通過接傳入連結路追蹤SDK來實作分布式鍊路追蹤,SDK本身隻負責鍊路監控,功能相對專注。

阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別

接入方式:無侵入式接入 vs 基于标準的侵入式接入

定位于APM的業務實時監控服務的監控接入方式使用的是業界商業化APM工具中比較流行的無侵入式接入方案。使用者無需改動代碼,即可接入。不過一般需要在應用程式中加載Agent,需要修改程式啟動方式。例如以業務實時監控服務為例,在啟動Java程式時需要增加-javaagent啟動參數。

定位于分布式鍊路追蹤的鍊路追蹤産品是基于開源産品

Jaeger

,

Zipkin

 等開源産品和開源标準

Opentracing

的監控産品。使用者可以基于以上任意一種标準SDK接入到鍊路追蹤中。這樣的好處是:

  • 已在用Jaeger, Zipkin或其他Opentracing标準SDK的應用可無縫遷移到鍊路追蹤産品中,而不用修改代碼;
  • 由于産品SDK是基于開源标準的,是以使用者不用擔心lock-in問題;
  • 借助社群力量,使用者可以一次性大量支援多種開發語言,使得面向異構環境的開發者在監控方面接入門檻大幅度降低。
阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別

使用成本:按量付費 vs 産品免費

和其他APM工具類産品類似,無論是應用監控還是前端監控等功能,業務實時監控服務采用的是按量付費的收費模式,總體來講還是占使用者總體預算的相當一部分。不過從總體來看,業務實時監控服務 收費大大低于業界平均水準,僅占業界水準10-20%左右,這也得益于其優秀的高性能和高效率架構。

鍊路追蹤專注于解決分布式環境下的鍊路診斷問題,其功能相對專注,産品精簡,本身不收費。使用者的鍊路資訊存儲于阿裡雲的日志服務産品中,使用者僅對日志服務存儲收費,鍊路追蹤産品本身不收費。

阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別

總結

以下表格總結兩個産品的差別和聯系。

産品定位 APM工具類産品,産品本身含應用性能監控,使用者體驗監控,鍊路追蹤,問題診斷等多項功能。 專注分布式鍊路功能追蹤功能。
應用程式語言支援 Java, PHP (coming soon) Java, PHP, Go, C#, Python, Node.JS, etc.
接入方式 無侵入式Agent加載方式接入 侵入式SDK程式設計方式接入
産品費用 按量付費,極具競争力的産品價格 産品本身免費,使用者僅對日志服務使用部分收費

未來展望

雖然兩個産品定位不同,但是同樣定位于阿裡雲上的開發者工具監控類産品,兩款産品未來會做互相地打通。

  • 業務實時監控服務 将支援 鍊路追蹤 的SDK方式進行分布式鍊路追蹤的定制化。
  • 鍊路追蹤 的應用鍊路 同樣能在 業務實時監控服務 的界面中進行查詢,優化使用者診斷體驗。

-> 歡迎關注“阿裡巴巴中間件”,加入中間件開發者群,與技術同行。

阿裡雲産品專家解讀鍊路追蹤(Tracing Analysis)和應用性能監控(APM)的聯系和差別