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

/express-simple-timing/

    Package Sidebar

    Install

    npm i express-simple-timing

    Weekly Downloads

    313

    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