Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@szmarczak/http-timer/README.md
1126 views

http-timer

Timings for HTTP requests

Build Status Coverage Status install size

Inspired by the request package.

Installation

NPM:

npm install @szmarczak/http-timer

Yarn:

yarn add @szmarczak/http-timer

Usage

Note:

  • The measured events resemble Node.js events, not the kernel ones.

  • Sending a chunk greater than highWaterMark will result in invalid upload and response timings. You can avoid this by splitting the payload into smaller chunks.

const https = require('https'); const timer = require('@szmarczak/http-timer'); const request = https.get('https://httpbin.org/anything'); timer(request); request.once('response', response => { response.resume(); response.once('end', () => { console.log(response.timings); // You can use `request.timings` as well }); }); // { // start: 1572712180361, // socket: 1572712180362, // lookup: 1572712180415, // connect: 1572712180571, // upload: 1572712180884, // response: 1572712181037, // end: 1572712181039, // error: undefined, // abort: undefined, // phases: { // wait: 1, // dns: 53, // tcp: 156, // request: 313, // firstByte: 153, // download: 2, // total: 678 // } // }

API

timer(request)

Returns: Object

Note: The time is a number representing the milliseconds elapsed since the UNIX epoch.

  • start - Time when the request started.

  • socket - Time when a socket was assigned to the request.

  • lookup - Time when the DNS lookup finished.

  • connect - Time when the socket successfully connected.

  • secureConnect - Time when the socket securely connected.

  • upload - Time when the request finished uploading.

  • response - Time when the request fired response event.

  • end - Time when the response fired end event.

  • error - Time when the request fired error event.

  • abort - Time when the request fired abort event.

  • phases

    • wait - timings.socket - timings.start

    • dns - timings.lookup - timings.socket

    • tcp - timings.connect - timings.lookup

    • tls - timings.secureConnect - timings.connect

    • request - timings.upload - (timings.secureConnect || timings.connect)

    • firstByte - timings.response - timings.upload

    • download - timings.end - timings.response

    • total - (timings.end || timings.error || timings.abort) - timings.start

If something has not been measured yet, it will be undefined.

License

MIT