.. _envoy_api_file_envoy/api/v2/cluster/circuit_breaker.proto:

Circuit breakers
================


.. _envoy_api_msg_cluster.CircuitBreakers:

cluster.CircuitBreakers
-----------------------

`[cluster.CircuitBreakers proto] <https://github.com/envoyproxy/envoy/blob/v1.11.1/api/envoy/api/v2/cluster/circuit_breaker.proto#L23>`_

:ref:`Circuit breaking<arch_overview_circuit_break>` settings can be
specified individually for each defined priority.

.. code-block:: json

  {
    "thresholds": []
  }

.. _envoy_api_field_cluster.CircuitBreakers.thresholds:

thresholds
  (:ref:`cluster.CircuitBreakers.Thresholds <envoy_api_msg_cluster.CircuitBreakers.Thresholds>`) If multiple :ref:`Thresholds<envoy_api_msg_cluster.CircuitBreakers.Thresholds>`
  are defined with the same :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`,
  the first one in the list is used. If no Thresholds is defined for a given
  :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`, the default values
  are used.
  
  
.. _envoy_api_msg_cluster.CircuitBreakers.Thresholds:

cluster.CircuitBreakers.Thresholds
----------------------------------

`[cluster.CircuitBreakers.Thresholds proto] <https://github.com/envoyproxy/envoy/blob/v1.11.1/api/envoy/api/v2/cluster/circuit_breaker.proto#L27>`_

A Thresholds defines CircuitBreaker settings for a
:ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`.

.. code-block:: json

  {
    "priority": "...",
    "max_connections": "{...}",
    "max_pending_requests": "{...}",
    "max_requests": "{...}",
    "max_retries": "{...}",
    "track_remaining": "...",
    "max_connection_pools": "{...}"
  }

.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.priority:

priority
  (:ref:`core.RoutingPriority <envoy_api_enum_core.RoutingPriority>`) The :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`
  the specified CircuitBreaker settings apply to.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.max_connections:

max_connections
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The maximum number of connections that Envoy will make to the upstream
  cluster. If not specified, the default is 1024.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.max_pending_requests:

max_pending_requests
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The maximum number of pending requests that Envoy will allow to the
  upstream cluster. If not specified, the default is 1024.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.max_requests:

max_requests
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The maximum number of parallel requests that Envoy will make to the
  upstream cluster. If not specified, the default is 1024.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.max_retries:

max_retries
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The maximum number of parallel retries that Envoy will allow to the
  upstream cluster. If not specified, the default is 3.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.track_remaining:

track_remaining
  (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) 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.
  
  
.. _envoy_api_field_cluster.CircuitBreakers.Thresholds.max_connection_pools:

max_connection_pools
  (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#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 <arch_overview_circuit_break_cluster_maximum_connection_pools>` for
  more details.