OutlierDetectionPolicy

Proto: outlier_detection_policy.proto

Package: resilience.policy.gloo.solo.io

Types:

OutlierDetectionPolicyReport

Field Description
workspaces (repeated OutlierDetectionPolicyReport.WorkspacesEntry)

A list of workspaces in which the policy can apply to workloads.
selectedDestinationPorts (repeated common.gloo.solo.io.DestinationReference)

A list of destination ports selected by the policy.

OutlierDetectionPolicyReport.WorkspacesEntry

Field Description
key (string)

value (common.gloo.solo.io.Report)

OutlierDetectionPolicySpec

OutlierDetectionPolicy is used to configure outlier detection on the selected destinations. Specifying this field requires an empty source_selector because it must apply to all traffic. OutlierDetectionPolicies are applied at the Destination level.

For VirtualDestinations, traffic will not be sent to deployments that are unavailable by default. An OutlierDetectionPolicy will add configuration to also eject a deployment that is returning too many 5xx HTTP status codes.

Field Description
applyToDestinations (repeated common.gloo.solo.io.DestinationSelector)

Destinations to apply the policy to. If empty, the policy applies to all destinations in the workspace.
config (OutlierDetectionPolicySpec.Config)

The details of the OutlierDetectionPolicy to apply to the selected destinations.

OutlierDetectionPolicySpec.Config

Field Description
consecutiveErrors (google.protobuf.UInt32Value)

The number of 5xx errors before a destination is removed from the healthy connection pool. The default, if this field is not set, is 5.
interval (google.protobuf.Duration)

The amount of time between analyzing destinations for ejection. Set this value as an integer plus a unit of time, in the format 1h, 1m, 1s, or 1ms. The value must be at least 1ms, and defaults to 10s. For information about the value format, see the Google protocol buffer documentation.
baseEjectionTime (google.protobuf.Duration)

The minimum time duration for ejection, or the time when a destination is considered unhealthy and not used for load balancing. Set this value as an integer plus a unit of time, in the format 1h, 1m, 1s, or 1ms. The value must be at least 1ms, and defaults to 30s. For information about the value format, see the Google protocol buffer documentation.
maxEjectionPercent (uint32)

The maximum percentage of destinations that can be removed from the healthy connection pool at a time. For example, if you have 10 total destinations that the policy selects, and set this value to 50 percent, 5 destinations can be removed at once. At least 1 destination can always be removed, regardless of the value you set. You can set this value between 0 and 100, with a default of 100.
consecutiveGatewayErrors (google.protobuf.UInt32Value)

Number of gateway errors before a host is ejected from the connection pool. When the upstream host is accessed over HTTP, a 502, 503, or 504 return code qualifies as a gateway error. When the upstream host is accessed over an opaque TCP connection, connect timeouts and connection error/failure events qualify as a gateway error. This feature is disabled by default or when set to the value 0.
Note that consecutive_gateway_errors and consecutive_errors can be used separately or together. Because the errors counted by consecutive_gateway_errors are also included in consecutive_errors, if the value of consecutive_gateway_errors is greater than or equal to the value of consecutive_errors, consecutive_gateway_errors has no effect.

OutlierDetectionPolicyStatus

The status of the policy after it is applied to your Gloo environment.

Field Description
common (common.gloo.solo.io.Status)

The state and workspace conditions of the applied resource.
numSelectedDestinationPorts (uint32)

The number of destination ports selected by the policy.