nodejs如何获取并统计请求时长?
发布于 1 天前 作者 zhoushirong 175 次浏览 来自 问答

问题:

1)浏览器请求url——2)路由处理url——3)根据url 拿到java数据 —— 4)渲染页面,这个过程中 现在需要统计(2-4)的时间以及(3)的时长

背景:

1.项目用的是nodejs的express框架 2.之前看了php的统计,php每一个请求就是一个进程,很好统计,但是对于node,不知道如何下手 3.尝试过用下面的方式实现,但是nodejs异步会导致开始的请求无法与请求结束的对应起来, (比如来了N个请求,然后处理了N-10个请求,这样就无法知道处理某个请求耗费的时间)

app.use(function (req, res, next) {
  getStartTime();
  res.on("finish", function(){
    getEndTime();
  });
  next();
});

var promise = new Promise(function(resolve, reject) {
        addStartTime();
        request(options).then(function(json) {
            if (json.responseCode == "0") {
                resolve(json);
            } else {
                resolve(json.errorcode);
            }
            addEndTime();
        }).catch(function(e) {
        })
});

各位有没有做过类似的事情或者有没有好的方案、建议、求指导!!!

2 回复

console.time('key') console.timeEnd('key') 相同的key会自动打印间隔时间 你需要找到每一个请求的唯一特征来做统计就好了

请求进来的时候,在req下面挂一个time,请求结束的时候再取一个当前时间和之前对比就行了。

回到顶部