latency-header-benchmark
v0.1.1
Published
Benchmark HTTP request incoming, outgoing, processing and roundtrip latencies.
Downloads
9
Maintainers
Readme
Latency Headers Benchmark
Latency headers benchmark makes use of these HTTP headers from latency header enabled server responses:
x-request-received
is set by the server with the timestamp of when the request was receivedx-response-sent
is set by the server with the timestamp of when the response was sent
To determine the following latency benchmarks:
- outgoing network latency: time between client sending the request and server receiving it
- server processing latency: time between server receiving the request and sending the response
- incoming network latency: time between server sending the response and client receiving it
- total round trip latency: time between client sending the request and receiving response
Usage
latencyHeadersBenchmark(requestSent, headers)
- requestSent
integer
- Timestamp in milliseconds since epoch of when the request was sent - headers
object
- With required response headersx-request-received
andx-response-sent
Example
// Require http for the request
var http = require('http')
// Require latency-headers-benchmark
var latencyBenchmark = require('latency-headers-benchmark')
// Save the timestamp of when the request was sent as its required
var requestSent = new Date().getTime()
// Send the request to a server that returns the latency headers
http.get("http://localhost:1337", function(res) {
// Run the benchmark
var results = latencyBenchmark(requestSent, res.headers)
// Output the results
console.log(results)
})
Try it out
An example server and app is included in this repo for your convenience.
# Clone this repo
git clone [email protected]:montanaflynn/latency-header-benchmark.git
# CD to the example dir
cd latency-header-benchmark/example
# Install this package (npmception?)
npm install
# Start the server in the background
node server.js &
# Run the app
node app.js
# Kill the example server
pkill latencyServer
Related projects
MIT license
Copyright (c) 2014, Montana Flynn (http://anonfunction.com/)