跨越可觀測性鴻溝|高手們都在用的「火焰圖」是什麼

  • 2021 年 12 月 8 日
  • 筆記

關鍵字解析:
火焰圖(Flame Graph)由性能優化大師 Brendan Gregg 發明,和所有其他的 profiling 方法不同的是,火焰圖以一個全局的視野來看待時間分布,列出所有可能導致性能瓶頸的調用棧。
通過火焰圖,可以非常方便的看到性能資源都消耗在了哪裡,從而能夠直觀的看到程式的性能瓶頸,以進行程式的優化。


為了使服務鏈路追蹤可視化更高效,Erda 在微服務治理平台新版本中也引入了火焰圖功能,下面我們一起來看看吧~

功能入口

//www.erda.cloud/ (需要註冊帳號,如需演示可加入用戶交流群獲取免費試用資源)

登陸後點擊如下模組:

微服務治理平台 – (具體項目) – 診斷分析 – 鏈路追蹤 – 查看詳情 – 火焰圖

0.gif

進入功能介面:

1.gif

  • X 軸代表調用耗時時間長度
  • Y 軸是函數塊疊加而成,有點像程式調試堆棧,代表調用的深度

火焰塊 X 軸越長,說明 span 調用耗時越長,可聯合其火焰圖的縱軸判斷是否存在子調用過多或者自身調用過慢的情況,更方便排查請求過程中的業務瓶頸或異常點。

滑鼠懸浮

2.gif

火焰的每一層都會標註完整操作名,滑鼠懸浮時會顯示:

  • 完整的服務名
  • 具體的操作名
  • 調用類型及調用的對象
  • 當前調用耗時
  • 總調用耗時(當前調用耗時 + 子調用耗時)

點擊放大

3.gif

在某一層點擊,火焰圖會水平放大,該層會佔據所有寬度,顯示詳細資訊。

火焰圖整體功能演示參看影片:

火焰圖整體演示

參考鏈接 & 延伸閱讀


更多技術乾貨請關注【爾達 Erda】公眾號,與眾多開源愛好者共同成長~