Circuit breakers

cluster.CircuitBreakers

[cluster.CircuitBreakers proto]

Circuit breaking settings can be specified individually for each defined priority.

  1. {
  2. "thresholds": []
  3. }

thresholds

(cluster.CircuitBreakers.Thresholds) If multiple Thresholds are defined with the same RoutingPriority, the first one in the list is used. If no Thresholds is defined for a given RoutingPriority, the default values are used.

cluster.CircuitBreakers.Thresholds

[cluster.CircuitBreakers.Thresholds proto]

A Thresholds defines CircuitBreaker settings for a RoutingPriority.

  1. {
  2. "priority": "...",
  3. "max_connections": "{...}",
  4. "max_pending_requests": "{...}",
  5. "max_requests": "{...}",
  6. "max_retries": "{...}",
  7. "track_remaining": "...",
  8. "max_connection_pools": "{...}"
  9. }

priority

(core.RoutingPriority) The RoutingPriority the specified CircuitBreaker settings apply to.

max_connections

(UInt32Value) The maximum number of connections that Envoy will make to the upstream cluster. If not specified, the default is 1024.

max_pending_requests

(UInt32Value) The maximum number of pending requests that Envoy will allow to the upstream cluster. If not specified, the default is 1024.

max_requests

(UInt32Value) The maximum number of parallel requests that Envoy will make to the upstream cluster. If not specified, the default is 1024.

max_retries

(UInt32Value) The maximum number of parallel retries that Envoy will allow to the upstream cluster. If not specified, the default is 3.

track_remaining

(bool) If track_remaining is true, then stats will be published that expose the number of resources remaining until the circuit breakers open. If not specified, the default is false.

max_connection_pools

(UInt32Value) The maximum number of connection pools per cluster that Envoy will concurrently support at once. If not specified, the default is unlimited. Set this for clusters which create a large number of connection pools. See Circuit Breaking for more details.