Source File
trace.go
Belonging Package
github.com/go-resty/resty/v2
// Copyright (c) 2015-2023 Jeevanandam M (jeeva@myjeeva.com), All rights reserved.// resty source code and usage is governed by a MIT style// license that can be found in the LICENSE file.package restyimport ()//‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾// TraceInfo struct//_______________________________________________________________________// TraceInfo struct is used provide request trace info such as DNS lookup// duration, Connection obtain duration, Server processing duration, etc.//// Since v2.0.0type TraceInfo struct {// DNSLookup is a duration that transport took to perform// DNS lookup.DNSLookup time.Duration// ConnTime is a duration that took to obtain a successful connection.ConnTime time.Duration// TCPConnTime is a duration that took to obtain the TCP connection.TCPConnTime time.Duration// TLSHandshake is a duration that TLS handshake took place.TLSHandshake time.Duration// ServerTime is a duration that server took to respond first byte.ServerTime time.Duration// ResponseTime is a duration since first response byte from server to// request completion.ResponseTime time.Duration// TotalTime is a duration that total request took end-to-end.TotalTime time.Duration// IsConnReused is whether this connection has been previously// used for another HTTP request.IsConnReused bool// IsConnWasIdle is whether this connection was obtained from an// idle pool.IsConnWasIdle bool// ConnIdleTime is a duration how long the connection was previously// idle, if IsConnWasIdle is true.ConnIdleTime time.Duration// RequestAttempt is to represent the request attempt made during a Resty// request execution flow, including retry count.RequestAttempt int// RemoteAddr returns the remote network address.RemoteAddr net.Addr}//‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾// ClientTrace struct and its methods//_______________________________________________________________________// tracer struct maps the `httptrace.ClientTrace` hooks into Fields// with same naming for easy understanding. Plus additional insights// Request.type clientTrace struct {getConn time.TimednsStart time.TimednsDone time.TimeconnectDone time.TimetlsHandshakeStart time.TimetlsHandshakeDone time.TimegotConn time.TimegotFirstResponseByte time.TimeendTime time.TimegotConnInfo httptrace.GotConnInfo}//‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾// Trace unexported methods//_______________________________________________________________________func ( *clientTrace) ( context.Context) context.Context {return httptrace.WithClientTrace(,&httptrace.ClientTrace{DNSStart: func( httptrace.DNSStartInfo) {.dnsStart = time.Now()},DNSDone: func( httptrace.DNSDoneInfo) {.dnsDone = time.Now()},ConnectStart: func(, string) {if .dnsDone.IsZero() {.dnsDone = time.Now()}if .dnsStart.IsZero() {.dnsStart = .dnsDone}},ConnectDone: func(, string, error) {.connectDone = time.Now()},GetConn: func( string) {.getConn = time.Now()},GotConn: func( httptrace.GotConnInfo) {.gotConn = time.Now().gotConnInfo =},GotFirstResponseByte: func() {.gotFirstResponseByte = time.Now()},TLSHandshakeStart: func() {.tlsHandshakeStart = time.Now()},TLSHandshakeDone: func( tls.ConnectionState, error) {.tlsHandshakeDone = time.Now()},},)}
![]() |
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |