func()

in internal/httptransport/trace.go [11:84]


func (mrt *meteredRoundTripper) newTracer(start time.Time) *httptrace.
	ClientTrace {
	trace := &httptrace.ClientTrace{
		GetConn: func(host string) {
			mrt.httpTraceObserve("httptrace.ClientTrace.GetConn", start)

			log.WithFields(log.Fields{
				"host": host,
			}).Traceln("httptrace.ClientTrace.GetConn")
		},
		GotConn: func(connInfo httptrace.GotConnInfo) {
			mrt.httpTraceObserve("httptrace.ClientTrace.GotConn", start)

			log.WithFields(log.Fields{
				"reused":       connInfo.Reused,
				"was_idle":     connInfo.WasIdle,
				"idle_time_ms": connInfo.IdleTime.Milliseconds(),
			}).Traceln("httptrace.ClientTrace.GotConn")
		},
		GotFirstResponseByte: func() {
			mrt.httpTraceObserve("httptrace.ClientTrace.GotFirstResponseByte", start)
		},
		DNSStart: func(d httptrace.DNSStartInfo) {
			mrt.httpTraceObserve("httptrace.ClientTrace.DNSStart", start)
		},
		DNSDone: func(d httptrace.DNSDoneInfo) {
			mrt.httpTraceObserve("httptrace.ClientTrace.DNSDone", start)

			log.WithFields(log.Fields{}).WithError(d.Err).
				Traceln("httptrace.ClientTrace.DNSDone")
		},
		ConnectStart: func(net, addr string) {
			mrt.httpTraceObserve("httptrace.ClientTrace.ConnectStart", start)

			log.WithFields(log.Fields{
				"network": net,
				"address": addr,
			}).Traceln("httptrace.ClientTrace.ConnectStart")
		},
		ConnectDone: func(net string, addr string, err error) {
			mrt.httpTraceObserve("httptrace.ClientTrace.ConnectDone", start)

			l := log.WithFields(log.Fields{
				"network": net,
				"address": addr,
			})

			if err != nil {
				l.WithError(err).Error("httptrace.ClientTrace.ConnectDone")
			}

			l.Traceln("httptrace.ClientTrace.ConnectDone")
		},
		TLSHandshakeStart: func() {
			mrt.httpTraceObserve("httptrace.ClientTrace.TLSHandshakeStart", start)
		},
		TLSHandshakeDone: func(connState tls.ConnectionState, err error) {
			mrt.httpTraceObserve("httptrace.ClientTrace.TLSHandshakeDone", start)

			l := log.WithFields(log.Fields{
				"version":            connState.Version,
				"connection_resumed": connState.DidResume,
			})

			if err != nil {
				l.WithError(err).Error("httptrace.ClientTrace.TLSHandshakeDone")
			}

			l.Traceln("httptrace.ClientTrace.TLSHandshakeDone")
		},
	}

	return trace
}