prometheus采集nodejs指标

niboac

关注

阅读 203

2022-08-30

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来源位置
image.png
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截图

image.png

9. 监控指标

  • 请求量
  • 应用性能指数得分 Apdex Score
  • 请求错误率
  • 处理中的请求
  • CPU占用
  • 堆内存
  • 请求数与错误响应比
  • 每秒请求方法数
  • 不同时段请求耗时统计
  • 调用前3的API
  • 调用错误请求前3的API

参考

nodejs监控exporter<br>
swagger-stat操作手册

image.pngQQ学习交流群

精彩评论(0)

0 0 举报