Retries

Package: retries.options.gloo.solo.io

Types:

Source File: github.com/solo-io/gloo/projects/gloo/api/v1/options/retries/retries.proto


RetryBackOff

This specifies the retry policy interval for backoffs. Note that if the base interval provided is larger than the maximum interval OR if any of the durations passed are <= 0 MS, there will be an error.

"baseInterval": .google.protobuf.Duration
"maxInterval": .google.protobuf.Duration

Field Type Description
baseInterval .google.protobuf.Duration Specifies the base interval for a retry.
maxInterval .google.protobuf.Duration Specifies the max interval for a retry.

ResetHeader

ResetHeader is a header that is used to reset the retry backoff.

"name": string
"format": .retries.options.gloo.solo.io.ResetHeader.HeaderFormat

Field Type Description
name string Specifies the name of the header to interpret for the retry backoff.
format .retries.options.gloo.solo.io.ResetHeader.HeaderFormat Specifies the format of the header to interpret for the retry backoff.

HeaderFormat

Name Description
SECONDS
UNIX_TIMESTAMP

RateLimitedRetryBackOff

This specifies the retry policy interval for rate limited requests. Based on: https://github.com/envoyproxy/envoy/blob/4a134ce926cf0b882a4c416734b579f9722ed1eb/api/envoy/config/route/v3/route_components.proto#L1522

"resetHeaders": []retries.options.gloo.solo.io.ResetHeader
"maxInterval": .google.protobuf.Duration

Field Type Description
resetHeaders []retries.options.gloo.solo.io.ResetHeader Specifies the reset headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case insensitive. The first header to be parsed successfully is used. If no headers match the default exponential back-off is used instead.
maxInterval .google.protobuf.Duration Specifies the maximum back off interval that Gloo will allow. If a reset header contains an interval longer than this then it will be discarded and the next header will be tried. Defaults to 300 seconds.

RetryPolicy

Retry Policy applied at the Route and/or Virtual Hosts levels.

"retryOn": string
"numRetries": int
"perTryTimeout": .google.protobuf.Duration
"retryBackOff": .retries.options.gloo.solo.io.RetryBackOff
"previousPriorities": .retries.options.gloo.solo.io.RetryPolicy.PreviousPriorities
"retriableStatusCodes": []int
"rateLimitedRetryBackOff": .retries.options.gloo.solo.io.RateLimitedRetryBackOff

Field Type Description
retryOn string Specifies the conditions under which retry takes place. These are the same conditions documented for Envoy.
numRetries int Specifies the allowed number of retries. This parameter is optional and defaults to 1. These are the same conditions documented for Envoy.
perTryTimeout .google.protobuf.Duration Specifies a non-zero upstream timeout per retry attempt. This parameter is optional.
retryBackOff .retries.options.gloo.solo.io.RetryBackOff Specifies the retry policy interval.
previousPriorities .retries.options.gloo.solo.io.RetryPolicy.PreviousPriorities Specify the previous priorities. For more information about previous priorities, see the Envoy docs.
retriableStatusCodes []int Optional: HTTP status codes that should trigger a retry in addition to those specified by retry_on. This can be useful if you want to retry on a status code that is not in the retry_on list. Specifically those in the 4xx range.
rateLimitedRetryBackOff .retries.options.gloo.solo.io.RateLimitedRetryBackOff Optional: Specifies the retry backoff strategy for rate limited requests.

PreviousPriorities

"updateFrequency": .google.protobuf.UInt32Value

Field Type Description
updateFrequency .google.protobuf.UInt32Value Specify the update frequency for the previous priorities. For more information about previous priorities, see the Envoy docs. This option only works in combination with an Upstream failover policy that enables priorities.