楔子
前一節中我們藉助於 Chrome devtools 實現了對線上 Node.js 應用的 CPU/Memory 問題的排查定位,但是在實際生產實踐中,大家會發現 Chrome devtools 更加偏向本地開發模式,因為顯然 Chrome devtools 不會負責去生成分析問題所需要的 Dump 文件,這意味著開發者還得額外在線上項目中設置好 v8-profiler 和 heapdump 這樣的工具,並且通過額外實現的服務來能夠去對線上運行的項目進行實時的狀態導出。
加上實際上預備章中除了 CPU/Memory 的問題,我們還會遇到一些需要分析錯誤日誌、磁碟和核心轉儲文件等才能定位問題的狀況,因此在這些場景下,僅僅靠 Chrome devtools 顯然會有一些力不從心。正是為瞭解決廣大 Node.js 開發者的這些痛點,我們在這裡推薦大家在使用 Node.js 性能平臺,即原來的 AliNode,它已經在阿里巴巴集團內部承載了幾乎所有的 Node.js 應用線上運行監控和問題排查,因此大家可以放心在生產環境部署使用。
本節將從 Node.js 性能平臺 的設計架構、核心能力以及最佳實踐等角度,幫助開發者更好地使用這一工具來解決前面提到的異常指標分析和線上 Node.js 應用故障定位。
本書首發在 Github,倉庫地址:https://github.com/aliyun-node/Node.js-Troubleshooting-Guide,雲棲社區會同步更新。
架構
Node.js 性能平臺其實簡單的說由三部分組成:雲控制檯 +** AliNode runtime** + Agenthub,如下圖所示: