Overload Manager¶
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.
config.overload.v3.ResourceMonitor¶
[config.overload.v3.ResourceMonitor proto]
{
  "name": "...",
  "typed_config": "{...}"
}
- name
 (string, REQUIRED) The name of the resource monitor to instantiate. Must match a registered resource monitor type. See the extensions listed in typed_config below for the default list of available resource monitor.
- typed_config
 (Any) Configuration for the resource monitor being instantiated.
Tip
This extension category has the following known extensions:
config.overload.v3.ThresholdTrigger¶
[config.overload.v3.ThresholdTrigger proto]
{
  "value": "..."
}
- value
 (double) If the resource pressure is greater than or equal to this value, the trigger will enter saturation.
config.overload.v3.ScaledTrigger¶
[config.overload.v3.ScaledTrigger proto]
{
  "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.
config.overload.v3.Trigger¶
[config.overload.v3.Trigger proto]
{
  "name": "...",
  "threshold": "{...}",
  "scaled": "{...}"
}
- name
 (string, REQUIRED) The name of the resource this is a trigger for.
- threshold
 
- scaled
 
config.overload.v3.ScaleTimersOverloadActionConfig¶
[config.overload.v3.ScaleTimersOverloadActionConfig proto]
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.
config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer¶
[config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer proto]
{
  "timer": "...",
  "min_timeout": "{...}",
  "min_scale": "{...}"
}
- timer
 (config.overload.v3.ScaleTimersOverloadActionConfig.TimerType) The type of timer this minimum applies to.
- 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.
Enum config.overload.v3.ScaleTimersOverloadActionConfig.TimerType¶
[config.overload.v3.ScaleTimersOverloadActionConfig.TimerType proto]
- 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
- TRANSPORT_SOCKET_CONNECT
 Adjusts the timer for how long downstream clients have to finish transport-level negotiations before the connection is closed. This affects the value of FilterChain.transport_socket_connect_timeout.
config.overload.v3.OverloadAction¶
[config.overload.v3.OverloadAction proto]
{
  "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.
config.overload.v3.OverloadManager¶
[config.overload.v3.OverloadManager proto]
{
  "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
 (repeated config.overload.v3.OverloadAction) The set of overload actions.