# latency-header-benchmark

> Benchmark HTTP request incoming, outgoing, processing and roundtrip latencies.

Latest version **0.1.1** (published 2014-11-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install latency-header-benchmark
pnpm add latency-header-benchmark
yarn add latency-header-benchmark
bun add latency-header-benchmark
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.1 |
| Published | 2014-11-18 |
| First published | 2014-10-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Montana Flynn |
| Maintainers | montanaflynn |
| Keywords | http, latency, benchmark, incoming, outgoing, network |

## Links

- npm: https://www.npmjs.com/package/latency-header-benchmark
- Repository: https://github.com/montanaflynn/latency-header-benchmark
- Issues: https://github.com/montanaflynn/latency-header-benchmark/issues
- npm.io page: https://npm.io/package/latency-header-benchmark

## Recent versions

- 0.1.1 (latest) — 2014-11-18
- 0.1.0 — 2014-11-18
- 0.0.4 — 2014-11-18
- 0.0.2 — 2014-10-23
- 0.0.1 — 2014-10-23

## 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 received
- `x-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 headers `x-request-received` and `x-response-sent`

## Example

```javascript
// 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. 

```shell
# Clone this repo
git clone git@github.com: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

- [Latency Header Proof of Concept](https://github.com/montanaflynn/Latency-Headers-PoC/)
- [Express Latency Header Middleware](https://github.com/montanaflynn/express-latency-headers)
- [Koa Latency Header Middleware](https://github.com/montanaflynn/koa-latency-headers)

## MIT license

Copyright (c) 2014, Montana Flynn (http://anonfunction.com/)

---
_Source: https://npm.io/package/latency-header-benchmark · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
