查看Heroku请求运行了多长时间

时间:2016-08-22 22:30:10

标签: node.js heroku

是否可以确定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)。在请求运行时是否可以访问此变量?

1 个答案:

答案 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');
  });

通过记录请求开始的时间,您可以随时计算该请求的持续时间。