.. _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. The built-in resource monitors are: * :ref:`envoy.resource_monitors.fixed_heap ` * :ref:`envoy.resource_monitors.injected_resource ` .. _envoy_v3_api_field_config.overload.v3.ResourceMonitor.typed_config: typed_config (`Any `_) Configuration for the resource monitor being instantiated. .. _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.OverloadAction: config.overload.v3.OverloadAction --------------------------------- `[config.overload.v3.OverloadAction proto] `_ .. code-block:: json { "name": "...", "triggers": [] } .. _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 (: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_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 (:ref:`config.overload.v3.ResourceMonitor `, *REQUIRED*) The set of resources to monitor. .. _envoy_v3_api_field_config.overload.v3.OverloadManager.actions: actions (:ref:`config.overload.v3.OverloadAction `) The set of overload actions.