// Original file: deps/envoy-api/envoy/config/cluster/v3/circuit_breaker.proto import type { RoutingPriority as _envoy_config_core_v3_RoutingPriority, RoutingPriority__Output as _envoy_config_core_v3_RoutingPriority__Output } from '../../../../envoy/config/core/v3/RoutingPriority'; import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value'; import type { Percent as _envoy_type_v3_Percent, Percent__Output as _envoy_type_v3_Percent__Output } from '../../../../envoy/type/v3/Percent'; export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget { /** * 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%. */ 'budget_percent'?: (_envoy_type_v3_Percent | null); /** * 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. */ 'min_retry_concurrency'?: (_google_protobuf_UInt32Value | null); } export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__Output { /** * 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%. */ 'budget_percent': (_envoy_type_v3_Percent__Output | null); /** * 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. */ 'min_retry_concurrency': (_google_protobuf_UInt32Value__Output | null); } /** * A Thresholds defines CircuitBreaker settings for a * :ref:`RoutingPriority`. * [#next-free-field: 9] */ export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds { /** * The :ref:`RoutingPriority` * the specified CircuitBreaker settings apply to. */ 'priority'?: (_envoy_config_core_v3_RoutingPriority); /** * The maximum number of connections that Envoy will make to the upstream * cluster. If not specified, the default is 1024. */ 'max_connections'?: (_google_protobuf_UInt32Value | null); /** * 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. */ 'max_pending_requests'?: (_google_protobuf_UInt32Value | null); /** * 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. */ 'max_requests'?: (_google_protobuf_UInt32Value | null); /** * The maximum number of parallel retries that Envoy will allow to the * upstream cluster. If not specified, the default is 3. */ 'max_retries'?: (_google_protobuf_UInt32Value | null); /** * 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. */ 'retry_budget'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget | null); /** * 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. */ 'track_remaining'?: (boolean); /** * 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. */ 'max_connection_pools'?: (_google_protobuf_UInt32Value | null); } /** * A Thresholds defines CircuitBreaker settings for a * :ref:`RoutingPriority`. * [#next-free-field: 9] */ export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output { /** * The :ref:`RoutingPriority` * the specified CircuitBreaker settings apply to. */ 'priority': (_envoy_config_core_v3_RoutingPriority__Output); /** * The maximum number of connections that Envoy will make to the upstream * cluster. If not specified, the default is 1024. */ 'max_connections': (_google_protobuf_UInt32Value__Output | null); /** * 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. */ 'max_pending_requests': (_google_protobuf_UInt32Value__Output | null); /** * 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. */ 'max_requests': (_google_protobuf_UInt32Value__Output | null); /** * The maximum number of parallel retries that Envoy will allow to the * upstream cluster. If not specified, the default is 3. */ 'max_retries': (_google_protobuf_UInt32Value__Output | null); /** * 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. */ 'retry_budget': (_envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__Output | null); /** * 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. */ 'track_remaining': (boolean); /** * 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. */ 'max_connection_pools': (_google_protobuf_UInt32Value__Output | null); } /** * :ref:`Circuit breaking` settings can be * specified individually for each defined priority. */ export interface CircuitBreakers { /** * 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. */ 'thresholds'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds)[]; /** * Optional per-host limits which apply to each individual host in a cluster. * * .. note:: * currently only the :ref:`max_connections * ` field is supported for per-host limits. * * If multiple per-host :ref:`Thresholds` * are defined with the same :ref:`RoutingPriority`, * the first one in the list is used. If no per-host Thresholds are defined for a given * :ref:`RoutingPriority`, * the cluster will not have per-host limits. */ 'per_host_thresholds'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds)[]; } /** * :ref:`Circuit breaking` settings can be * specified individually for each defined priority. */ export interface CircuitBreakers__Output { /** * 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. */ 'thresholds': (_envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output)[]; /** * Optional per-host limits which apply to each individual host in a cluster. * * .. note:: * currently only the :ref:`max_connections * ` field is supported for per-host limits. * * If multiple per-host :ref:`Thresholds` * are defined with the same :ref:`RoutingPriority`, * the first one in the list is used. If no per-host Thresholds are defined for a given * :ref:`RoutingPriority`, * the cluster will not have per-host limits. */ 'per_host_thresholds': (_envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output)[]; }