diff --git a/lib/core/context.ts b/lib/core/context.ts index 603b43c1..5080d8b3 100644 --- a/lib/core/context.ts +++ b/lib/core/context.ts @@ -42,31 +42,31 @@ export interface RequestLog { /** * Request begin. */ - requestStart: Date; + requestStart: number; /** * request.on("socket") */ - onSocket: Date; + onSocket: number; /** * Exact time that dns look up done. */ - onLookUp: Date; + onLookUp: number; /** * Exact time that client finished sending HTTP request to the server. */ - requestFinish: Date; + requestFinish: number; /** * socket.on("connect") */ - socketConnect: Date; + socketConnect: number; /** * request.on("response") */ - onResponse: Date; + onResponse: number; /** * response.on("close") */ - responseClose: Date; + responseClose: number; /** * milliseconds Fiddler spent in DNS looking up the server's IP address. */ diff --git a/lib/core/runtime/capture/index.ts b/lib/core/runtime/capture/index.ts index d46c7b79..0a61f147 100644 --- a/lib/core/runtime/capture/index.ts +++ b/lib/core/runtime/capture/index.ts @@ -98,7 +98,7 @@ export const hack = ( }; const { timestamps } = requestLog; - timestamps.requestStart = new Date(); + timestamps.requestStart = new Date().getTime(); const clearDomain = (): void => { const parser = (request.socket as any)?.parser as any; @@ -117,7 +117,7 @@ export const hack = ( }; request.once("socket", (socket: Socket): void => { - timestamps.onSocket = new Date(); + timestamps.onSocket = new Date().getTime(); if (!isIP(hostname)) { socket.once("lookup", ( @@ -126,9 +126,8 @@ export const hack = ( family: string | number, host: string ): void => { - timestamps.onLookUp = new Date(); - timestamps.dnsTime = timestamps.onLookUp.getTime() - - timestamps.onSocket.getTime(); + timestamps.onLookUp = new Date().getTime(); + timestamps.dnsTime = timestamps.onLookUp - timestamps.onSocket; logger.debug(`${logPre} Dns lookup ${host} -> ${ address || "null"}. Cost ${timestamps.dnsTime}ms`); @@ -146,12 +145,12 @@ export const hack = ( } socket.once("connect", (): void => { - timestamps.socketConnect = new Date(); + timestamps.socketConnect = new Date().getTime(); logger.debug(`${logPre} Socket connected. Remote: ${ socket.remoteAddress }:${socket.remotePort}. Cost ${ - timestamps.socketConnect.getTime() - timestamps.onSocket.getTime() + timestamps.socketConnect - timestamps.onSocket } ms`); }); @@ -177,7 +176,7 @@ export const hack = ( request.once("close", clearDomain); request.once("finish", () => { - timestamps.requestFinish = new Date(); + timestamps.requestFinish = new Date().getTime(); context.captureSN += 1; @@ -196,14 +195,14 @@ export const hack = ( logger.debug(`${logPre} Request send finish. Body size ${ length }. Cost: ${ - timestamps.requestFinish.getTime() - timestamps.onSocket.getTime() + timestamps.requestFinish - timestamps.onSocket } ms`); clearDomain(); }); request.once("response", (response: http.IncomingMessage): void => { - timestamps.onResponse = new Date(); + timestamps.onResponse = new Date().getTime(); const { socket } = response; requestLog.serverIp = socket.remoteAddress; @@ -220,15 +219,14 @@ export const hack = ( }:${socket.remotePort}. Response status code: ${ response.statusCode }. Cost: ${ - timestamps.onResponse.getTime() - - timestamps.onSocket.getTime() + timestamps.onResponse - timestamps.onSocket } ms`); // responseInfo can't retrieve data until response "end" event const responseInfo = captureIncoming(response); response.once("end", () => { - timestamps.responseClose = new Date(); + timestamps.responseClose = new Date().getTime(); requestLog.statusCode = response.statusCode; requestLog.responseLength = responseInfo.bodyLength; @@ -262,8 +260,7 @@ export const hack = ( logger.debug(`${logPre} Response on end. Body sizeļ¼š${ requestLog.responseLength }. Cost: ${ - timestamps.responseClose.getTime() - - timestamps.onSocket.getTime() + timestamps.responseClose - timestamps.onSocket } ms`); finishRequest(); diff --git a/lib/core/runtime/create-server.hack.ts b/lib/core/runtime/create-server.hack.ts index 5e5f8e58..b94d9cb5 100644 --- a/lib/core/runtime/create-server.hack.ts +++ b/lib/core/runtime/create-server.hack.ts @@ -44,7 +44,7 @@ export const hack = ( } const requestListenerWrap: http.RequestListener = (req, res) => { - const start = new Date(); + const start = new Date().getTime(); const timestamps: RequestLog["timestamps"] = { dnsTime: 0, requestStart: start, @@ -80,7 +80,7 @@ export const hack = ( res.writeHead = ((fn): typeof res.writeHead => ( ...args: unknown[] ): ReturnType => { - timestamps.onResponse = new Date(); + timestamps.onResponse = new Date().getTime(); const context = currentContext(); @@ -154,7 +154,7 @@ export const hack = ( }); res.once("close", () => { - timestamps.responseClose = new Date(); + timestamps.responseClose = new Date().getTime(); const context = currentContext();