server-timing
v3.3.3
Published
This module can add `ServerTiming` Header to http response, and be able to use express middleware
Downloads
52,481
Maintainers
Readme
server-timing
This module adds Server-Timing to response headers. Example is here and open chrome devtool network tab.
You can use this as a express module / basic http function.
Install
$ npm install server-timing -S
Usage
const express = require('express');
const serverTiming = require('server-timing');
const app = express();
app.use(serverTiming());
app.use((req, res, next) => {
res.startTime('file', 'File IO metric');
setTimeout(() => {
res.endTime('file');
}, 100);
next();
});
app.use((req, res, next) => {
// you can see test end time response
res.startTime('test', 'forget to call endTime');
next();
});
app.use((req, res, next) => {
// All timings should be in milliseconds (s). See issue #9 (https://github.com/yosuke-furukawa/server-timing/issues/9).
res.setMetric('db', 100.0, 'Database metric');
res.setMetric('api', 200.0, 'HTTP/API metric');
res.setMetric('cache', 300.0, 'cache metric');
next();
});
app.use((req, res, next) => {
res.send('hello');
});
Conditionally enabled
const express = require('express');
const serverTiming = require('server-timing');
const app = express();
app.use(serverTiming({
// Only send metrics if query parameter `debug` is set to `true`
enabled: (req, res) => req.query.debug === 'true'
}));
API
constructor(options)
- options.name: string, default
total
, name for the timing item - options.description: string, default
Total Response Time
, explanation for the timing item - options.total: boolean, default
true
, add total response time - options.enabled: boolean | function, default
true
, enable server timing header. If a function is passed, it will be called with two arguments,request
andresponse
, and should return a boolean. - options.autoEnd: boolean, default
true
automatically endTime is called if timer is not finished. - options.precision: number, default
+Infinity
, number of decimals to use for timings.