syntax = "proto3"; package envoy.api.v2.cluster; option go_package = "cluster"; option csharp_namespace = "Envoy.Api.V2.ClusterNS"; import "envoy/api/v2/core/base.proto"; import "google/protobuf/wrappers.proto"; import "gogoproto/gogo.proto"; option (gogoproto.equal_all) = true; // [#protodoc-title: Circuit breakers] // :ref:`Circuit breaking` settings can be // specified individually for each defined priority. message CircuitBreakers { // A Thresholds defines CircuitBreaker settings for a // :ref:`RoutingPriority`. message Thresholds { // The :ref:`RoutingPriority` // the specified CircuitBreaker settings apply to. // [#comment:TODO(htuch): add (validate.rules).enum.defined_only = true once // https://github.com/lyft/protoc-gen-validate/issues/42 is resolved.] core.RoutingPriority priority = 1; // The maximum number of connections that Envoy will make to the upstream // cluster. If not specified, the default is 1024. google.protobuf.UInt32Value max_connections = 2; // The maximum number of pending requests that Envoy will allow to the // upstream cluster. If not specified, the default is 1024. google.protobuf.UInt32Value max_pending_requests = 3; // The maximum number of parallel requests that Envoy will make to the // upstream cluster. If not specified, the default is 1024. google.protobuf.UInt32Value max_requests = 4; // The maximum number of parallel retries that Envoy will allow to the // upstream cluster. If not specified, the default is 3. google.protobuf.UInt32Value max_retries = 5; } // 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. repeated Thresholds thresholds = 1; }