http链路跟踪
var start,dns, connect time.Time
var connectTime,dNSDoneTime, firstRespByteTime int64
// 创建客户端请求跟踪
trace := &httptrace.ClientTrace{
DNSStart: func(dsi httptrace.DNSStartInfo) {
dns = time.Now()
},
DNSDone: func(ddi httptrace.DNSDoneInfo) {
dNSDoneTime = time.Since(dns).Milliseconds()
},
ConnectStart: func(network, addr string) { connect = time.Now() },
ConnectDone: func(network, addr string, err error) {
connectTime = time.Since(connect).Milliseconds()
}
}
req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))