请问Nodejs中express如何做性能监控?
请问Nodejs中express如何做性能监控?
我的应用用express做web框架,常用的工具,如mysql/mongodb/redis都用上了。
现在想做一些性能监控。比如,http接口,内部的方法,耗时有多少,内存消耗时多少,等等。
ps:我的应用时用pm2来部署的。
老外的Newrelic 国内也有一个仿的他的,不过名字忘了。。。。
正在试newrelic,不过总感觉这是把自己完全暴露被别人了。
要在Node.js中使用Express进行性能监控,可以利用一些第三方库和工具,例如morgan
用于HTTP请求日志记录,express-rate-limit
用于限流,以及newrelic
或pm2
自带的监控功能。
这里我将提供一个简单的例子,使用newrelic
来进行性能监控,并且配合PM2部署。newrelic
是一个全面的性能监控解决方案,支持错误追踪、事务追踪和数据库查询分析等功能。
首先安装必要的库:
npm install express newrelic
然后创建一个简单的Express应用,并配置New Relic:
const express = require('express');
const newrelic = require('newrelic');
const app = express();
app.get('/', (req, res) => {
// 模拟一个耗时操作
const start = Date.now();
setTimeout(() => {
res.send(`Hello World! 耗时:${Date.now() - start} ms`);
}, 1000);
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
接着配置New Relic。你需要在项目根目录下创建一个名为newrelic.js
的文件,并添加以下内容(请替换YOUR_LICENSE_KEY):
module.exports = {
licenseKey: 'YOUR_LICENSE_KEY',
appName: 'YourAppName',
logging: {
level: 'info'
}
};
最后,启动应用并使用PM2管理它:
pm2 start index.js --name "your-app-name"
这样,New Relic将会自动收集并展示你的Express应用的各种性能指标。你可以在New Relic的Web界面中查看诸如响应时间、吞吐量等信息。
如果你不想使用第三方服务,也可以考虑使用PM2的内置监控功能。只需启动PM2时添加--watch
选项即可开始基本的监控:
pm2 start index.js --name "your-app-name" --watch
通过PM2的Web界面或者使用命令行工具pm2 monit
,你可以查看CPU、内存使用情况及进程状态等信息。
以上就是一种简单的实现方式,你可以根据自己的需求选择合适的方案。