envoy.config.cluster.v3.circuit_breaker.proto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of akka-grpc-interop-tests_2.13 Show documentation
Show all versions of akka-grpc-interop-tests_2.13 Show documentation
Akka gRPC - Support for building streaming gRPC servers and clients on top of Akka Streams.
syntax = "proto3";
package envoy.config.cluster.v3;
import "envoy/config/core/v3/base.proto";
import "envoy/type/v3/percent.proto";
import "google/protobuf/wrappers.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
import "validate/validate.proto";
option java_package = "io.envoyproxy.envoy.config.cluster.v3";
option java_outer_classname = "CircuitBreakerProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3;clusterv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Circuit breakers]
// :ref:`Circuit breaking` settings can be
// specified individually for each defined priority.
message CircuitBreakers {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.cluster.CircuitBreakers";
// A Thresholds defines CircuitBreaker settings for a
// :ref:`RoutingPriority`.
// [#next-free-field: 9]
message Thresholds {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.cluster.CircuitBreakers.Thresholds";
message RetryBudget {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.cluster.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%.
type.v3.Percent budget_percent = 1;
// 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.
google.protobuf.UInt32Value min_retry_concurrency = 2;
}
// The :ref:`RoutingPriority`
// the specified CircuitBreaker settings apply to.
core.v3.RoutingPriority priority = 1 [(validate.rules).enum = {defined_only: true}];
// 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.
// This limit is applied as a connection limit for non-HTTP traffic.
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.
// This limit does not apply to non-HTTP traffic.
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;
// 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.
RetryBudget retry_budget = 8;
// 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.
bool track_remaining = 6;
// 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.
google.protobuf.UInt32Value max_connection_pools = 7;
}
// 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;
// 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.
repeated Thresholds per_host_thresholds = 2;
}