Google更新其雲端監控和日誌服務Stackdriver的分析工具Profiler,這次除了新增支援Node.js和Python之外,使用者現在還能加權過濾功能,針對最糟案例進行效能分析。

Stackdriver Profiler是Google在2018年春天推出的新服務,可以在不影響應用程式效能的情況下,分析正式環境中執行的應用程式效能。Stackdriver Profiler利用互動式的火焰圖(Flame Graph),顯示相關函式呼叫的階層結構與資源消耗,以幫助開發人員了解資源消耗的狀況以及不同程式碼實作方式帶來的差異。

Stackdriver Profiler剛上線時,已提供Java的CPU分析,以及Go語言的CPU和堆(Heap)分析,現在則增加了對Node.js和Python開發語言的支援,還有App Engine標準Java Runtime的支援。Google提到,使用Profiler很簡單,只要在應用程式中加入函式庫,並且重新部署就可以了,如果是在App Engine的標準環境執行Java程式碼,使用Profiler會更簡單,只需要在appengine-web.xml或app.yaml檔案中啟用後,再瀏覽GCP雲端控制臺中的Stackdriver Profiler功能,就能看到程式碼執行的情況。

Google提到,許多工作負載都有突發性的高峰資源消耗現象,但Stackdriver Profiler原本的功能,只能了解應用程式的資源平均消耗,無助於整體提升效能,因此Stackdriver Profiler最新加權過濾功能,可以讓使用者輕鬆地找出資源消耗高峰的原因,進而讓應用程式的運作變得順暢。

使用者可以使用加權過濾器,讓Stackdriver Profiler只分析應用程式資源消耗尖峰資料,例如查看CPU時間時,選擇前10%的權重,Profiler就只會分析捕捉到的前10%CPU消耗資料,剩下的90%資料將在圖表中省略。

Profiler提供的火焰圖可以供使用者快速探索,單一程式碼路徑呼叫的資源耗盡(Resource-hungry)函式,不過無法幫助使用者辨識整個程式碼中,局部最佳化函式對整體效能的影響。

現在使用者只要點擊過濾器左側的放大鏡按鈕,就能查看其函式的資源使用情況,並進一步查看這些函式的資源使用狀況以及圖表呈現。這些資訊在單獨查看火焰圖時,不見得能輕易的被觀察出來。


Advertisement

更多 iThome相關內容