Documentation
¶
Overview ¶
Package retry provides request retry functionality that can perform configurable exponential backoff for transient errors and honor any explicit throttle responses received.
Deprecated: package retry exists for historical compatibility, it should not be used.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultConfig = Config{ Enabled: true, InitialInterval: 5 * time.Second, MaxInterval: 30 * time.Second, MaxElapsedTime: time.Minute, }
DefaultConfig are the recommended defaults to use.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Enabled indicates whether to not retry sending batches in case of
// export failure.
Enabled bool
// InitialInterval the time to wait after the first failure before
// retrying.
InitialInterval time.Duration
// MaxInterval is the upper bound on backoff interval. Once this value is
// reached the delay between consecutive retries will always be
// `MaxInterval`.
MaxInterval time.Duration
// MaxElapsedTime is the maximum amount of time (including retries) spent
// trying to send a request/batch. Once this value is reached, the data
// is discarded.
MaxElapsedTime time.Duration
}
Config defines configuration for retrying batches in case of export failure using an exponential backoff.
func (Config) RequestFunc ¶
func (c Config) RequestFunc(evaluate EvaluateFunc) RequestFunc
RequestFunc returns a RequestFunc using the evaluate function to determine if requests can be retried and based on the exponential backoff configuration of c.
type EvaluateFunc ¶
EvaluateFunc returns if an error is retry-able and if an explicit throttle duration should be honored that was included in the error.
The function must return true if the error argument is retry-able, otherwise it must return false for the first return parameter.
The function must return a non-zero time.Duration if the error contains explicit throttle duration that should be honored, otherwise it must return a zero valued time.Duration.