是否可以确定Heroku Node.js请求运行了多长时间?
在每个Heroku请求结束时,我将以下行写入我的日志:
2016-08-22T22:00:05.410367+00:00 heroku[router]: at=info method=POST path="xxx" host=xxx request_id=xxx fwd="54.85.230.45" dyno=web.1 connect=1ms service=2759ms status=200 bytes=669
service
var告诉我请求运行了多长时间(详细here)。在请求运行时是否可以访问此变量?
答案 0 :(得分:1)
当然,尽管测量请求时间与Heroku没有任何关系。
只需在请求处理程序中添加某种计时器即可。例如,在express中,您可以通过执行以下操作来动态查看请求已执行的时间(到目前为止):
const express = require('express');
const app = express();
app
.use((req, res, next) => {
req.start = Date.now();
next();
})
.get('/', (req, res) => {
res.send('ok');
console.log(Date.now() - req.start);
})
.listen(process.env.PORT || 3000, () => {
console.log('Listening');
});
通过记录请求开始的时间,您可以随时计算该请求的持续时间。