Currently, the request total is calculated by EndTime - DNS Start Time | Get Conn Time:
|
if ct.gotConnInfo.Reused { |
|
ti.TotalTime = ct.endTime.Sub(ct.getConn) |
|
} else { |
|
ti.TotalTime = ct.endTime.Sub(ct.dnsStart) |
|
} |
And in Go's transport, it won't call the GetConn if the request is invalid(for example: an invalid URL format), so both of DNS Start Time | Get Conn Time are zero. So it will get MAX_INT64 if we use a valid time to sub the zero time.