Package Exports
- server-timing
- server-timing/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (server-timing) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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.