https://github.com/sbstjn/latenz
JavaScript HTTP latency analyzer
https://github.com/sbstjn/latenz
benchmark javascript latency measure network nodejs
Last synced: 9 months ago
JSON representation
JavaScript HTTP latency analyzer
- Host: GitHub
- URL: https://github.com/sbstjn/latenz
- Owner: sbstjn
- License: mit
- Created: 2016-06-21T07:24:12.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-06-23T23:52:36.000Z (almost 10 years ago)
- Last Synced: 2025-04-17T13:10:17.724Z (about 1 year ago)
- Topics: benchmark, javascript, latency, measure, network, nodejs
- Language: JavaScript
- Size: 83 KB
- Stars: 20
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# latenz
[](https://travis-ci.org/sbstjn/latenz) [](https://github.com/sbstjn/latenz/commits/master) [](https://www.npmjs.com/package/latenz) [](https://www.npmjs.com/package/latenz)
A JavaScript latency analyzer like [updown.io](https://updown.io) or [ping.apex.sh](https://ping.apex.sh). Get information about DNS lookup, connection time to your HTTP(S) server and how long it takes to receive the response.
```bash
$ > npm install latenz -g
$ > latenz sbstjn.com
host: sbstjn.com
Name Lookup: 10ms
Connection: 3ms (13ms)
Response: 63ms (76ms)
Received: 5ms (81ms)
total: 81ms
```

If you plan to use the result for further scripting, you might be a friend of the `raw mode`, which can be enabled by using `--raw` parameter:
```bash
$ > latenz sbstjn.com --raw
985 lookup:443 socket:3 response:534 end:5
```
For using **HTTPS** instead of HTTP (default), just pass the `--secure` parameter to latenz:
```bash
$ > latenz sbstjn.com --raw --secure
985 lookup:443 socket:3 response:534 end:5
```
### JavaScript Usage
If you need the result as a JSON inside JavaScript:
```javascript
const Latenz = require('latenz');
const l = new Latenz();
l.measure('sbstjn.com').then(result => {
console.log(result);
/*
[
{ key: 'resolve', time: 139 },
{ key: 'socket', time: 2 },
{ key: 'response', time: 286 },
{ key: 'firstdata', time: 1 },
{ key: 'end', time: 2 }
]
*/
}).catch((e) => {
throw e;
});
```
You can pass an **options object** to `measure` in order to enable a secure connection, change the used port or set the result mode:
```javascript
l.measure('sbstjn.com',
{
secure: true,
port: 8443,
mode: 'pretty'
}
);
```
### ToDo
* Error handling
* Support redirects
* Check numbers