Easy-MonitorNode.js 內(nèi)核性能監(jiān)控分析工具
I. 簡介
輕量級的 Node.js 項(xiàng)目內(nèi)核性能監(jiān)控 + 分析工具,在默認(rèn)模式下,只需要在項(xiàng)目入口文件 require 一次,無需改動(dòng)任何業(yè)務(wù)代碼即可開啟內(nèi)核級別的性能監(jiān)控分析。
- 功能特點(diǎn)
服務(wù)器狀態(tài)概覽信息展示
實(shí)時(shí) CPU 函數(shù)性能分析,幫助定位程序的性能瓶頸點(diǎn)
實(shí)時(shí) Memory 堆內(nèi)內(nèi)存結(jié)構(gòu)分析,幫助定位到內(nèi)存疑似泄漏點(diǎn)
Easy-Monitor 旨在幫助大家更深入的理解自己的 Node 項(xiàng)目進(jìn)程,以便性能優(yōu)化時(shí)能更有針對性,最終提升大家的項(xiàng)目體驗(yàn)。
- 兼容性
目前經(jīng)過測試,兼容以下 Node.js 版本:
Node v4.x
Node v6.x
Node v8.x
因?yàn)?Node.js 的 LTS 版本都是偶數(shù)版本,所以此處并未對于奇數(shù)版本進(jìn)行測試(v5.x,v7.x),如果有測試過的可以以 issue 的形式將兼容性結(jié)果反饋。
注:Node v8.x 截止目前為止 (2017.6.6) 下使用 v8-profiler 有 Segmentation fault (core dumped) 的核心錯(cuò)誤,并且官方 issue 修復(fù)較慢 ( issue 112 ), 故經(jīng)排查源代碼后發(fā)布了 v8-profiler-node8 臨時(shí)解決了這個(gè) bug,等官方修復(fù)后,會(huì)將 Easy-Monitor 的依賴切回 v8-profiler 。
- 2.0 新特性
基于 vue.js 和 iview 組件全新設(shè)計(jì)的 UI
全面兼容 v4.x ~ v8.x
新增概覽 Overview 展示頁
支持 動(dòng)態(tài)更新配置,無需重啟一鍵生效
支持 Stream 流式解析更大的 HeapSnapshot
支持 Cluster 集群部署,支持定制 私有協(xié)議
II. 快速開始
- 安裝模塊
執(zhí)行如下命令安裝 Easy-Monitor:
npm install easy-monitor
- 項(xiàng)目中引入
在你的項(xiàng)目入口文件中按照如下方式引入,當(dāng)然請傳入你的項(xiàng)目名稱:
const easyMonitor = require('easy-monitor');
easyMonitor('你的項(xiàng)目名稱');
好了,此時(shí)你所需要做的一切都已就緒,接下來以你喜歡的方式運(yùn)行項(xiàng)目即可,不管是 nohup 還是 pm2,亦或是直接 node 啟動(dòng)均可。
- 訪問監(jiān)控頁面
打開你的瀏覽器,訪問 http://localhost:12333 ,即可看到進(jìn)程界面。
- 完整樣例 & Demo
為了幫助大家更好的理解使用,下面編寫一個(gè) Easy-Monitor 嵌入 Express 應(yīng)用的完整例子
'use strict';
const easyMonitor = require('easy-monitor');
easyMonitor('Mercury');
const express = require('express');
const app = express();
app.get('/hello', function (req, res, next) {
res.send('hello');
});
app.listen(8082);
將上述的內(nèi)容保存成一個(gè) js 文件,啟動(dòng)后訪問 http://127.0.0.1:12333 即進(jìn)入 Easy-Monitor 的首頁,就是這樣的簡單!
這里有一個(gè)在線真實(shí)的 Demo 地址:Easy-Monitor Demo,可以點(diǎn)擊進(jìn)入自行嘗試一番。
