1. 安装nodejs
# 下载nodejs安装包 或者解压nodejs
wget https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.xz
# 解压
tar -xvf node-v16.16.0-linux-x64.tar.xz
# 配置环境变量
vim /etc/profile
NODEJS_HOME=nodejsDir/bin
PATH=$NODEJS_HOME/bin:$PATH
# 立即生效环境变量
source /etc/profile
# 验证
node -v
npm -v
2. 安装express并创建项目
# 安装express
npm install -g express-generator@4
# 执行目录创建express示例项目
express /express_test && cd /express_test
express
3. 安装swagger-stats监控包
# 进入项目目录
npm install swagger-stats --save
4. 修改express启动配置文件app.js
const swStats = require('swagger-stats');
const apiSpec = require('swagger.json');
app.use(swStats.getMiddleware({swaggerSpec:apiSpec}));
==注意==:express创建的app.js有坑
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
swagger.json来源位置
grafana面板地址
5. 启动express示例项目
npm start
# shell后台启动
#!/bin/bash
nouhup npm start &
6. 配置prometheus任务
prometheus.yml添加如下配置
# nodejs
- job_name: "nodejs_express"
metrics_path: "/swagger-stats/metrics"
static_configs:
- targets: ["10.16.3.100:3100"]
7. 配置grafana面板
grafana面板id 3091
8. grafana截图
9. 监控指标
- 请求量
- 应用性能指数得分 Apdex Score
- 请求错误率
- 处理中的请求
- CPU占用
- 堆内存
- 请求数与错误响应比
- 每秒请求方法数
- 不同时段请求耗时统计
- 调用前3的API
- 调用错误请求前3的API
参考
nodejs监控exporter<br>
swagger-stat操作手册
QQ学习交流群