本文是《nodejs內存監控》監控系列的第一篇文章,主要是講述nodejs主要監控的指標以及市面上一些主流的監控方案。(本文非原創,搬了一些文章的知識點只做爲筆記使用)前端
Node.js 在前端的地位愈加重要,在前端的另外一面後面也逐漸展露手腳。可是,僅僅一些 Demo 只能覆蓋企業級應用的部分場景,服務在生產環境的穩定運行依靠的是完善的監控、日誌、流程等基礎設施。node
當使用 Node 在生產環境做爲服務器語言時,併發量過大或者代碼問題形成 OOM (out of memory) 或者 CPU 滿載這些都是服務器中常見的問題,此時經過監控 CPU 及內存,再結合日誌及 Release 就很容易發現問題。express
Node.js 監控的指標衡量的服務的負載、處理能力、健康狀態,下面來介紹一下性能指標的定義。服務器
用於判斷在服務器中的佔用狀況,是否存在內存泄露問題。內存的基本指標能夠經過 process.memoryUsage()
方法來獲取。markdown
堆空間分佈狀況併發
支持監控 koa 與 express 框架的服務,指標展現看板很人性化,也支持 Prometheus。app
egg.js 監控插件,採集指標少,僅 http 與 rpc 性能指標,適合二次開發。框架
阿里開源 Node.js 監控工具,在 egg.js 上使用過一段時間,但服務不夠穩定。koa
適用於nest.js
簡單的監控服務。ide
阿里 Node.js 應用程序監視,Docker Compose 的 Sandbox 部署配置。不過看起來很久沒人維護應該是kpi項目爛尾了
通用 Node.js 進程守護工具,附帶監控指標。監控指標須要加錢,並且不支持本地部署。對於數據敏感的能夠直接pass掉。
Express 框架的監控插件。
Prometheus 的 Node.js 客戶端,能夠建立指標類型,用於生成標準的 metrics。搭配prometheus十分強大,固然也能夠脫離prometheus只用來採集數據。
基於 prom-client 的,用於採集 GC 信息。
node.js 應用指標,支持 prometheus,另外 appmetrics-dash
提供看板功能。
收集指標集並將其公開 metrics,以便 Prometheus 服務器抓取。
輕量級實時 Node.js 內核性能監控分析工具。純開源項目,若是要求不高仍是十分推薦上這個開源項目。
開源方案中的第一選擇!,支持本地部署並且也是免費試用功能強大,中小公司的第一選擇。不過嚴格上屬於半開源,監控數據會上傳到阿里雲的後臺進行清洗處理,對於數據比較敏感的可能沒辦法試用。
國外一家提供監控基礎設施的服務商。
由於我自建了k8s集羣,而且把絕大部分項目都遷移到了k8s上,全部天然而然的選擇了prometheus + granafa + prom-cilent
的開源方案來實現node項目的監控。
在prometheus的基礎上,使用了開源的nodeJs dashboard
。在這個基礎上額外加上了http數據的相關監控。
在接下來的第二篇中,我將會大體的基於prometheus + granafa + prom-cilent
展現如何監控nodejs項目。