Documentation ¶
Index ¶
- Constants
- Variables
- func Context() retry.Retryer
- func NewCircuitBreakerTripper(settings gobreaker.Settings) *circuitBreakerTripper
- func NewDefaultCircuitBreakerTripper(name string) *circuitBreakerTripper
- func NewDefaultRetryTransport() *retry.Transport
- func RetryCodes(codes ...int) retry.Retryer
- type ChainableRoundTripper
- type DumpRoundTripper
- type DumpRoundTripperOption
- type JaegerRoundTripper
- type LocaleRoundTripper
- type LoggingRoundTripper
- type RequestIDRoundTripper
- type RequestSourceRoundTripper
- type RetryRoundTripper
- type RoundTripperChain
Constants ¶
const ( DumpRoundTripperOptionRequest = "request" DumpRoundTripperOptionResponse = "response" DumpRoundTripperOptionRequestHEX = "request-hex" DumpRoundTripperOptionResponseHEX = "response-hex" DumpRoundTripperOptionBody = "body" )
Variables ¶
var ( ErrRetryFailed = errors.New("failed after maximum number of retries") ErrCircuitBroken = errors.New("circuit to remote host is open") )
Functions ¶
func NewCircuitBreakerTripper ¶ added in v0.1.26
func NewDefaultCircuitBreakerTripper ¶ added in v0.1.26
func NewDefaultCircuitBreakerTripper(name string) *circuitBreakerTripper
func NewDefaultRetryTransport ¶ added in v0.1.13
NewDefaultRetryTransport returns a new default retry transport.
func RetryCodes ¶
RetryCodes retries when the status code is one of the provided list
Types ¶
type ChainableRoundTripper ¶
type ChainableRoundTripper interface { http.RoundTripper // Transport returns the RoundTripper to make HTTP requests Transport() http.RoundTripper // SetTransport sets the RoundTripper to make HTTP requests SetTransport(http.RoundTripper) }
ChainableRoundTripper models a chainable round tripper
type DumpRoundTripper ¶ added in v0.1.52
type DumpRoundTripper struct { DumpRequest bool DumpResponse bool DumpRequestHEX bool DumpResponseHEX bool DumpBody bool // contains filtered or unexported fields }
DumpRoundTripper dumps requests and responses in one log event. This is not part of te request logger to be able to filter dumps more easily
func NewDumpRoundTripper ¶ added in v0.1.52
func NewDumpRoundTripper(options ...DumpRoundTripperOption) *DumpRoundTripper
NewDumpRoundTripper return the roundtripper with configured options
func NewDumpRoundTripperEnv ¶ added in v0.1.52
func NewDumpRoundTripperEnv() *DumpRoundTripper
NewDumpRoundTripperEnv creates a new RoundTripper based on the configuration that is passed via environment variables
func (DumpRoundTripper) AnyEnabled ¶ added in v0.1.52
func (l DumpRoundTripper) AnyEnabled() bool
AnyEnabled returns true if any logging is enabled
func (*DumpRoundTripper) RoundTrip ¶ added in v0.1.52
RoundTrip executes a single HTTP transaction via Transport()
func (*DumpRoundTripper) SetTransport ¶ added in v0.1.52
func (l *DumpRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*DumpRoundTripper) Transport ¶ added in v0.1.52
func (l *DumpRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type DumpRoundTripperOption ¶ added in v0.1.52
type DumpRoundTripperOption string
type JaegerRoundTripper ¶
type JaegerRoundTripper struct {
// contains filtered or unexported fields
}
JaegerRoundTripper implements a chainable round tripper for tracing
func (*JaegerRoundTripper) SetTransport ¶
func (l *JaegerRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*JaegerRoundTripper) Transport ¶
func (l *JaegerRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type LocaleRoundTripper ¶ added in v0.1.42
type LocaleRoundTripper struct {
// contains filtered or unexported fields
}
LocaleRoundTripper implements a chainable round tripper for locale forwarding
func (*LocaleRoundTripper) RoundTrip ¶ added in v0.1.42
RoundTrip executes a HTTP request with logging
func (*LocaleRoundTripper) SetTransport ¶ added in v0.1.42
func (l *LocaleRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*LocaleRoundTripper) Transport ¶ added in v0.1.42
func (l *LocaleRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type LoggingRoundTripper ¶
type LoggingRoundTripper struct {
// contains filtered or unexported fields
}
LoggingRoundTripper implements a chainable round tripper for logging
func (*LoggingRoundTripper) SetTransport ¶
func (l *LoggingRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*LoggingRoundTripper) Transport ¶
func (l *LoggingRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type RequestIDRoundTripper ¶ added in v0.1.49
type RequestIDRoundTripper struct { SourceName string // contains filtered or unexported fields }
RequestIDRoundTripper implements a chainable round tripper for setting the Request-Source header
func (*RequestIDRoundTripper) RoundTrip ¶ added in v0.1.49
RoundTrip executes a single HTTP transaction via Transport()
func (*RequestIDRoundTripper) SetTransport ¶ added in v0.1.49
func (l *RequestIDRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*RequestIDRoundTripper) Transport ¶ added in v0.1.49
func (l *RequestIDRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type RequestSourceRoundTripper ¶ added in v0.1.12
type RequestSourceRoundTripper struct { SourceName string // contains filtered or unexported fields }
RequestSourceRoundTripper implements a chainable round tripper for setting the Request-Source header
func (*RequestSourceRoundTripper) RoundTrip ¶ added in v0.1.12
RoundTrip executes a single HTTP transaction via Transport()
func (*RequestSourceRoundTripper) SetTransport ¶ added in v0.1.12
func (l *RequestSourceRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*RequestSourceRoundTripper) Transport ¶ added in v0.1.12
func (l *RequestSourceRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type RetryRoundTripper ¶
type RetryRoundTripper struct {
// contains filtered or unexported fields
}
RetryRoundTripper implements a chainable round tripper for retrying requests
func NewDefaultRetryRoundTripper ¶
func NewDefaultRetryRoundTripper() *RetryRoundTripper
NewDefaultRetryRoundTripper returns a retry round tripper with a NewDefaultRetryTransport() as transport.
func NewRetryRoundTripper ¶
func NewRetryRoundTripper(rt *retry.Transport) *RetryRoundTripper
NewRetryRoundTripper returns a retry round tripper with the specified retry transport.
func (*RetryRoundTripper) SetTransport ¶
func (l *RetryRoundTripper) SetTransport(rt http.RoundTripper)
SetTransport sets the RoundTripper to make HTTP requests
func (*RetryRoundTripper) Transport ¶
func (l *RetryRoundTripper) Transport() http.RoundTripper
Transport returns the RoundTripper to make HTTP requests
type RoundTripperChain ¶
type RoundTripperChain struct {
// contains filtered or unexported fields
}
RoundTripperChain chains multiple chainable round trippers together.
func Chain ¶
func Chain(rt ...ChainableRoundTripper) *RoundTripperChain
Chain returns a round tripper chain with the specified chainable round trippers and http.DefaultTransport as transport. The transport can be overriden by using the Final method.
func NewDefaultTransportChain ¶
func NewDefaultTransportChain() *RoundTripperChain
NewDefaultTransportChain returns a transport chain with retry, jaeger and logging support. If not explicitly finalized via `Final` it uses `http.DefaultTransport` as finalizer.
func (*RoundTripperChain) Final ¶
func (c *RoundTripperChain) Final(t http.RoundTripper) *RoundTripperChain
Final sets the transport of the round tripper chain, which is used to make the actual request. Final should be called at the end of the chain. If not called, http.DefaultTransport is used. It returns the finalized round tripper chain.
func (*RoundTripperChain) RoundTrip ¶
RoundTrip calls all round trippers in the chain before executing the request.
func (*RoundTripperChain) Use ¶
func (c *RoundTripperChain) Use(rt ChainableRoundTripper) *RoundTripperChain
Use adds a chainable round tripper to the round tripper chain. It returns the updated round tripper chain.