express-simple-timing

1.0.0 • Public • Published

express-simple-timing

Express middleware that sets Server Timing API headers and optionally sends timers to stats systems.

express-simple-timing returns a middleware function that can be used with an express server. It sends Server-Timing headers to the client to allow inspection of route timings. It can also send stats to your stats system by using a callback passed into the constructor.

A default key of total is created based on the total time to deliver the entire route.

Installation

npm install --save express-simple-timing

Example Usage

const simpleTiming = require('express-simple-timing');
const router = require('express').Router();
 
router.use(simpleTiming());
 
module.exports = router.put('/mypath', function(req, res) {
  res.json({
    message: 'my response'
  });
});

This will add a total value by default, such as:

server-timing: total;dur=4.043

Custom metrics

By using the serverTimingStart and serverTimingEnd methods you can send ad hoc metrics for your app:

res.serverTimingStart('woof');
barkLikeADog();
res.serverTimingEnd('woof');

This will then add an additional timing header:

server-timing: woof;dur=2.43

Stats Callback

To use the timing metrics in your own stats system, you can pass a callback which receives req, key and value every time a server-timing header is added.

const myStats = require('my-stats-system');
const simpleTiming = require('express-simple-timing');
const router = require('express').Router();
 
function myStatsHook(req, key, value) {
  myStats(req.url, key, value);
}
 
router.use(simpleTiming(myStatsHook));

Test

npm test

Readme

Keywords

none

Package Sidebar

Install

npm i express-simple-timing

Weekly Downloads

373

Version

1.0.0

License

Apache-2.0

Unpacked Size

7.47 kB

Total Files

6

Last publish

Collaborators

  • rlfbbc
  • ramkup01
  • aggari01
  • abz.me
  • jamesdesq
  • hjerling
  • hafsa-abdulsalim
  • yusuf963m
  • tzaman76
  • rsblandamer
  • anthonygreen
  • mknish
  • tmoco
  • ajitsanto09
  • lexedwardsbbc
  • cjewell47
  • catherine_hpr
  • andycharris
  • syke
  • carrejoe3
  • chibbc
  • sbason
  • henrywarne
  • caporp01
  • swatitabib
  • ianarundale
  • milkywaynian
  • damouse404