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]

  1. {
  2. "name": "...",
  3. "typed_config": "{...}"
  4. }

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.

config.overload.v3.ThresholdTrigger

[config.overload.v3.ThresholdTrigger proto]

  1. {
  2. "value": "..."
  3. }

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]

  1. {
  2. "scaling_threshold": "...",
  3. "saturation_threshold": "..."
  4. }

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]

  1. {
  2. "name": "...",
  3. "threshold": "{...}",
  4. "scaled": "{...}"
  5. }

name

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

threshold

(config.overload.v3.ThresholdTrigger)

Precisely one of threshold, scaled must be set.

scaled

(config.overload.v3.ScaledTrigger)

Precisely one of threshold, scaled must be set.

config.overload.v3.OverloadAction

[config.overload.v3.OverloadAction proto]

  1. {
  2. "name": "...",
  3. "triggers": []
  4. }

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

(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.

config.overload.v3.OverloadManager

[config.overload.v3.OverloadManager proto]

  1. {
  2. "refresh_interval": "{...}",
  3. "resource_monitors": [],
  4. "actions": []
  5. }

refresh_interval

(Duration) The interval for refreshing resource usage.

resource_monitors

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

actions

(config.overload.v3.OverloadAction) The set of overload actions.