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

  1. refresh_interval:
  2. seconds: 0
  3. nanos: 250000000
  4. resource_monitors:
  5. - name: "envoy.resource_monitors.fixed_heap"
  6. config:
  7. max_heap_size_bytes: 2147483648
  8. actions:
  9. - name: "envoy.overload_actions.disable_http_keepalive"
  10. triggers:
  11. - name: "envoy.resource_monitors.fixed_heap"
  12. threshold:
  13. value: 0.95
  14. - name: "envoy.overload_actions.stop_accepting_requests"
  15. triggers:
  16. - name: "envoy.resource_monitors.fixed_heap"
  17. threshold:
  18. 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:

NameDescription
envoy.overload_actions.stop_accepting_requestsEnvoy will immediately respond with a 503 response code to new requests
envoy.overload_actions.disable_http_keepaliveEnvoy will disable keepalive on HTTP/1.x responses
envoy.overload_actions.stop_accepting_connectionsEnvoy will stop accepting new network connections on its configured listeners

Statistics

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

NameTypeDescription
pressureGaugeResource pressure as a percent
failed_updatesCounterTotal failed attempts to update the resource pressure
skipped_updatesCounterTotal skipped attempts to update the resource pressure due to a pending update

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

NameTypeDescription
activeGaugeActive state of the action (0=inactive, 1=active)