.. _envoy_v3_api_file_envoy/config/overload/v3/overload.proto: 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. .. _envoy_v3_api_msg_config.overload.v3.ResourceMonitor: config.overload.v3.ResourceMonitor ---------------------------------- `[config.overload.v3.ResourceMonitor proto] `_ .. code-block:: json { "name": "...", "typed_config": "{...}" } .. _envoy_v3_api_field_config.overload.v3.ResourceMonitor.name: name (`string `_, *REQUIRED*) The name of the resource monitor to instantiate. Must match a registered resource monitor type. See the :ref:`extensions listed in typed_config below ` for the default list of available resource monitor. .. _envoy_v3_api_field_config.overload.v3.ResourceMonitor.typed_config: typed_config (`Any `_) Configuration for the resource monitor being instantiated. .. _extension_category_envoy.resource_monitors: .. tip:: This extension category has the following known extensions: - :ref:`envoy.resource_monitors.fixed_heap ` - :ref:`envoy.resource_monitors.injected_resource ` .. _envoy_v3_api_msg_config.overload.v3.ThresholdTrigger: config.overload.v3.ThresholdTrigger ----------------------------------- `[config.overload.v3.ThresholdTrigger proto] `_ .. code-block:: json { "value": "..." } .. _envoy_v3_api_field_config.overload.v3.ThresholdTrigger.value: value (`double `_) If the resource pressure is greater than or equal to this value, the trigger will enter saturation. .. _envoy_v3_api_msg_config.overload.v3.ScaledTrigger: config.overload.v3.ScaledTrigger -------------------------------- `[config.overload.v3.ScaledTrigger proto] `_ .. code-block:: json { "scaling_threshold": "...", "saturation_threshold": "..." } .. _envoy_v3_api_field_config.overload.v3.ScaledTrigger.scaling_threshold: scaling_threshold (`double `_) If the resource pressure is greater than this value, the trigger will be in the :ref:`scaling ` state with value `(pressure - scaling_threshold) / (saturation_threshold - scaling_threshold)`. .. _envoy_v3_api_field_config.overload.v3.ScaledTrigger.saturation_threshold: saturation_threshold (`double `_) If the resource pressure is greater than this value, the trigger will enter saturation. .. _envoy_v3_api_msg_config.overload.v3.Trigger: config.overload.v3.Trigger -------------------------- `[config.overload.v3.Trigger proto] `_ .. code-block:: json { "name": "...", "threshold": "{...}", "scaled": "{...}" } .. _envoy_v3_api_field_config.overload.v3.Trigger.name: name (`string `_, *REQUIRED*) The name of the resource this is a trigger for. .. _envoy_v3_api_field_config.overload.v3.Trigger.threshold: threshold (:ref:`config.overload.v3.ThresholdTrigger `) Precisely one of :ref:`threshold `, :ref:`scaled ` must be set. .. _envoy_v3_api_field_config.overload.v3.Trigger.scaled: scaled (:ref:`config.overload.v3.ScaledTrigger `) Precisely one of :ref:`threshold `, :ref:`scaled ` must be set. .. _envoy_v3_api_msg_config.overload.v3.ScaleTimersOverloadActionConfig: config.overload.v3.ScaleTimersOverloadActionConfig -------------------------------------------------- `[config.overload.v3.ScaleTimersOverloadActionConfig proto] `_ Typed configuration for the "envoy.overload_actions.reduce_timeouts" action. See :ref:`the docs ` for an example of how to configure the action with different timeouts and minimum values. .. code-block:: json { "timer_scale_factors": [] } .. _envoy_v3_api_field_config.overload.v3.ScaleTimersOverloadActionConfig.timer_scale_factors: timer_scale_factors (**repeated** :ref:`config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer `, *REQUIRED*) A set of timer scaling rules to be applied. .. _envoy_v3_api_msg_config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer: config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer ------------------------------------------------------------- `[config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer proto] `_ .. code-block:: json { "timer": "...", "min_timeout": "{...}", "min_scale": "{...}" } .. _envoy_v3_api_field_config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer.timer: timer (:ref:`config.overload.v3.ScaleTimersOverloadActionConfig.TimerType `) The type of timer this minimum applies to. .. _envoy_v3_api_field_config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer.min_timeout: min_timeout (`Duration `_) Sets the minimum duration as an absolute value. Precisely one of :ref:`min_timeout `, :ref:`min_scale ` must be set. .. _envoy_v3_api_field_config.overload.v3.ScaleTimersOverloadActionConfig.ScaleTimer.min_scale: min_scale (:ref:`type.v3.Percent `) Sets the minimum duration as a percentage of the maximum value. Precisely one of :ref:`min_timeout `, :ref:`min_scale ` must be set. .. _envoy_v3_api_enum_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType: Enum config.overload.v3.ScaleTimersOverloadActionConfig.TimerType ----------------------------------------------------------------- `[config.overload.v3.ScaleTimersOverloadActionConfig.TimerType proto] `_ .. _envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.UNSPECIFIED: UNSPECIFIED *(DEFAULT)* ⁣Unsupported value; users must explicitly specify the timer they want scaled. .. _envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE: 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 :ref:`HttpConnectionManager.common_http_protocol_options.idle_timeout ` .. _envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE: HTTP_DOWNSTREAM_STREAM_IDLE ⁣Adjusts the idle timer for HTTP streams initiated by downstream clients. This affects the value of :ref:`RouteAction.idle_timeout ` and :ref:`HttpConnectionManager.stream_idle_timeout ` .. _envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.TRANSPORT_SOCKET_CONNECT: 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 :ref:`FilterChain.transport_socket_connect_timeout `. .. _envoy_v3_api_msg_config.overload.v3.OverloadAction: config.overload.v3.OverloadAction --------------------------------- `[config.overload.v3.OverloadAction proto] `_ .. code-block:: json { "name": "...", "triggers": [], "typed_config": "{...}" } .. _envoy_v3_api_field_config.overload.v3.OverloadAction.name: 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. .. _envoy_v3_api_field_config.overload.v3.OverloadAction.triggers: triggers (**repeated** :ref:`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. .. _envoy_v3_api_field_config.overload.v3.OverloadAction.typed_config: typed_config (`Any `_) Configuration for the action being instantiated. .. _envoy_v3_api_msg_config.overload.v3.OverloadManager: config.overload.v3.OverloadManager ---------------------------------- `[config.overload.v3.OverloadManager proto] `_ .. code-block:: json { "refresh_interval": "{...}", "resource_monitors": [], "actions": [] } .. _envoy_v3_api_field_config.overload.v3.OverloadManager.refresh_interval: refresh_interval (`Duration `_) The interval for refreshing resource usage. .. _envoy_v3_api_field_config.overload.v3.OverloadManager.resource_monitors: resource_monitors (**repeated** :ref:`config.overload.v3.ResourceMonitor `, *REQUIRED*) The set of resources to monitor. .. _envoy_v3_api_field_config.overload.v3.OverloadManager.actions: actions (**repeated** :ref:`config.overload.v3.OverloadAction `) The set of overload actions.