The Overload Manager provides an extensible framework to protect Envoy instances from overload of various resources (memory, cpu, file descriptors, etc). It monitors a configurable set of resources and notifies registered listeners when triggers related to those resources fire.

{
"name": "...",
"typed_config": "{...}"
}

name

(string, REQUIRED) The name of the resource monitor to instantiate. Must match a registered resource monitor type. The built-in resource monitors are:

typed_config

(Any) Configuration for the resource monitor being instantiated.

{
"value": "..."
}

value

(double) If the resource pressure is greater than or equal to this value, the trigger will enter saturation.

{
"scaling_threshold": "...",
"saturation_threshold": "..."
}

scaling_threshold

(double) If the resource pressure is greater than this value, the trigger will be in the scaling state with value (pressure - scaling_threshold) / (saturation_threshold - scaling_threshold).

saturation_threshold

(double) If the resource pressure is greater than this value, the trigger will enter saturation.

{
"name": "...",
"threshold": "{...}",
"scaled": "{...}"
}

name

(string, REQUIRED) The name of the resource this is a trigger for.

threshold

Precisely one of threshold, scaled must be set.

scaled

Precisely one of threshold, scaled must be set.

Typed configuration for the “envoy.overload_actions.reduce_timeouts” action. See the docs for an example of how to configure the action with different timeouts and minimum values.

{
"timer_scale_factors": []
}

timer_scale_factors

(repeated config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer, REQUIRED) A set of timer scaling rules to be applied.

{
"timer": "...",
"min_timeout": "{...}",
"min_scale": "{...}"
}

timer

min_timeout

(Duration) Sets the minimum duration as an absolute value.

Precisely one of min_timeout, min_scale must be set.

min_scale

(type.v3.Percent) Sets the minimum duration as a percentage of the maximum value.

Precisely one of min_timeout, min_scale must be set.

UNSPECIFIED

(DEFAULT) ⁣Unsupported value; users must explicitly specify the timer they want scaled.

HTTP_DOWNSTREAM_CONNECTION_IDLE

⁣Adjusts the idle timer for downstream HTTP connections that takes effect when there are no active streams. This affects the value of HttpConnectionManager.common_http_protocol_options.idle_timeout

HTTP_DOWNSTREAM_STREAM_IDLE

⁣Adjusts the idle timer for HTTP streams initiated by downstream clients. This affects the value of RouteAction.idle_timeout and HttpConnectionManager.stream_idle_timeout

{
"name": "...",
"triggers": [],
"typed_config": "{...}"
}

name

(string, REQUIRED) The name of the overload action. This is just a well-known string that listeners can use for registering callbacks. Custom overload actions should be named using reverse DNS to ensure uniqueness.

triggers

(repeated config.overload.v3.Trigger, REQUIRED) A set of triggers for this action. The state of the action is the maximum state of all triggers, which can be scaling between 0 and 1 or saturated. Listeners are notified when the overload action changes state.

typed_config

(Any) Configuration for the action being instantiated.

{
"refresh_interval": "{...}",
"resource_monitors": [],
"actions": []
}

refresh_interval

(Duration) The interval for refreshing resource usage.

resource_monitors

(repeated config.overload.v3.ResourceMonitor, REQUIRED) The set of resources to monitor.

actions