Overload manager

The overload manager is configured in the Bootstrap overload_manager field.

An example configuration of the overload manager is shown below. It shows a configuration to disable HTTP/1.x keepalive when heap memory usage reaches 95% and to stop accepting requests when heap memory usage reaches 99%.

refresh_interval:
  seconds: 0
  nanos: 250000000
resource_monitors:
  - name: "envoy.resource_monitors.fixed_heap"
    config:
      max_heap_size_bytes: 2147483648
actions:
  - name: "envoy.overload_actions.disable_http_keepalive"
    triggers:
      - name: "envoy.resource_monitors.fixed_heap"
        threshold:
          value: 0.95
  - name: "envoy.overload_actions.stop_accepting_requests"
    triggers:
      - name: "envoy.resource_monitors.fixed_heap"
        threshold:
          value: 0.99

Resource monitors

The overload manager uses Envoy’s extension framework for defining resource monitors. Envoy’s builtin resource monitors are listed here.

Overload actions

The following overload actions are supported:

Name Description
envoy.overload_actions.stop_accepting_requests Envoy will immediately respond with a 503 response code to new requests
envoy.overload_actions.disable_http_keepalive Envoy will disable keepalive on HTTP/1.x responses
envoy.overload_actions.stop_accepting_connections Envoy will stop accepting new network connections on its configured listeners

Statistics

Each configured resource monitor has a statistics tree rooted at overload.<name>. with the following statistics:

Name Type Description
pressure Gauge Resource pressure as a percent
failed_updates Counter Total failed attempts to update the resource pressure
skipped_updates Counter Total skipped attempts to update the resource pressure due to a pending update

Each configured overload action has a statistics tree rooted at overload.<name>. with the following statistics:

Name Type Description
active Gauge Active state of the action (0=inactive, 1=active)