-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
I use got http client and I use option {dnsCache: true}
.
In http-timer packages, theres's two code to calculate dns duration.
-
on socket's
lookup event
listener
Lines 93 to 98 in 62f6b38
const lookupListener = (): void => { timings.lookup = Date.now(); timings.phases.dns = timings.lookup - timings.socket!; }; socket.prependOnceListener('lookup', lookupListener); -
deferToConnect()
's connect callback function
Lines 102 to 110 in 62f6b38
timings.connect = Date.now(); if (timings.lookup === undefined) { socket.removeListener('lookup', lookupListener); timings.lookup = timings.connect; timings.phases.dns = timings.lookup - timings.socket!; } timings.phases.tcp = timings.connect - timings.lookup;
When use got with dnsCache, once hostname resolved, then until ttl, no lookup event emitted on the socket, so lookup time should be 0.
But above the code 2, dns never be 0 but tcp(connection time) will be 0.
When Server got a lot of traffic and got's socket connection delayed, value of tcp will not increased ( this always be 0 ), but value of dns increased.
I think this is causing confusion and needs to be fixed
alexey-yarmosh
Metadata
Metadata
Assignees
Labels
No labels