.. _envoy_v3_api_file_envoy/config/cluster/v3/circuit_breaker.proto: Circuit breakers ================ This documentation is for the Envoy v3 API. As of Envoy v1.18 the v2 API has been removed and is no longer supported. If you are upgrading from v2 API config you may wish to view the v2 API documentation: :ref:`api/v2/cluster/circuit_breaker.proto ` .. _envoy_v3_api_msg_config.cluster.v3.CircuitBreakers: config.cluster.v3.CircuitBreakers --------------------------------- :repo:`[config.cluster.v3.CircuitBreakers proto] ` :ref:`Circuit breaking` settings can be specified individually for each defined priority. .. code-block:: json { "thresholds": [] } .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.thresholds: thresholds (**repeated** :ref:`config.cluster.v3.CircuitBreakers.Thresholds `) If multiple :ref:`Thresholds` are defined with the same :ref:`RoutingPriority`, the first one in the list is used. If no Thresholds is defined for a given :ref:`RoutingPriority`, the default values are used. .. _envoy_v3_api_msg_config.cluster.v3.CircuitBreakers.Thresholds: config.cluster.v3.CircuitBreakers.Thresholds -------------------------------------------- :repo:`[config.cluster.v3.CircuitBreakers.Thresholds proto] ` A Thresholds defines CircuitBreaker settings for a :ref:`RoutingPriority`. .. code-block:: json { "priority": "...", "max_connections": "{...}", "max_pending_requests": "{...}", "max_requests": "{...}", "max_retries": "{...}", "retry_budget": "{...}", "track_remaining": "...", "max_connection_pools": "{...}" } .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.priority: priority (:ref:`config.core.v3.RoutingPriority `) The :ref:`RoutingPriority` the specified CircuitBreaker settings apply to. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.max_connections: max_connections (`UInt32Value `_) The maximum number of connections that Envoy will make to the upstream cluster. If not specified, the default is 1024. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.max_pending_requests: 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. This limit is applied as a connection limit for non-HTTP traffic. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.max_requests: max_requests (`UInt32Value `_) The maximum number of parallel requests that Envoy will make to the upstream cluster. If not specified, the default is 1024. This limit does not apply to non-HTTP traffic. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.max_retries: max_retries (`UInt32Value `_) The maximum number of parallel retries that Envoy will allow to the upstream cluster. If not specified, the default is 3. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.retry_budget: retry_budget (:ref:`config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget `) Specifies a limit on concurrent retries in relation to the number of active requests. This parameter is optional. .. note:: If this field is set, the retry budget will override any configured retry circuit breaker. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.track_remaining: 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. .. note:: If a retry budget is used in lieu of the max_retries circuit breaker, the remaining retry resources remaining will not be tracked. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.max_connection_pools: 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 :ref:`Circuit Breaking ` for more details. .. _envoy_v3_api_msg_config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget: config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget -------------------------------------------------------- :repo:`[config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget proto] ` .. code-block:: json { "budget_percent": "{...}", "min_retry_concurrency": "{...}" } .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget.budget_percent: budget_percent (:ref:`type.v3.Percent `) Specifies the limit on concurrent retries as a percentage of the sum of active requests and active pending requests. For example, if there are 100 active requests and the budget_percent is set to 25, there may be 25 active retries. This parameter is optional. Defaults to 20%. .. _envoy_v3_api_field_config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget.min_retry_concurrency: min_retry_concurrency (`UInt32Value `_) Specifies the minimum retry concurrency allowed for the retry budget. The limit on the number of active retries may never go below this number. This parameter is optional. Defaults to 3.