...

Text file src/github.com/datawire/ambassador/v2/api/envoy/config/cluster/v3/circuit_breaker.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/config/cluster/v3

     1syntax = "proto3";
     2
     3package envoy.config.cluster.v3;
     4
     5import "envoy/config/core/v3/base.proto";
     6import "envoy/type/v3/percent.proto";
     7
     8import "google/protobuf/wrappers.proto";
     9
    10import "udpa/annotations/status.proto";
    11import "udpa/annotations/versioning.proto";
    12import "validate/validate.proto";
    13
    14option java_package = "io.envoyproxy.envoy.config.cluster.v3";
    15option java_outer_classname = "CircuitBreakerProto";
    16option java_multiple_files = true;
    17option (udpa.annotations.file_status).package_version_status = ACTIVE;
    18
    19// [#protodoc-title: Circuit breakers]
    20
    21// :ref:`Circuit breaking<arch_overview_circuit_break>` settings can be
    22// specified individually for each defined priority.
    23message CircuitBreakers {
    24  option (udpa.annotations.versioning).previous_message_type =
    25      "envoy.api.v2.cluster.CircuitBreakers";
    26
    27  // A Thresholds defines CircuitBreaker settings for a
    28  // :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`.
    29  // [#next-free-field: 9]
    30  message Thresholds {
    31    option (udpa.annotations.versioning).previous_message_type =
    32        "envoy.api.v2.cluster.CircuitBreakers.Thresholds";
    33
    34    message RetryBudget {
    35      option (udpa.annotations.versioning).previous_message_type =
    36          "envoy.api.v2.cluster.CircuitBreakers.Thresholds.RetryBudget";
    37
    38      // Specifies the limit on concurrent retries as a percentage of the sum of active requests and
    39      // active pending requests. For example, if there are 100 active requests and the
    40      // budget_percent is set to 25, there may be 25 active retries.
    41      //
    42      // This parameter is optional. Defaults to 20%.
    43      type.v3.Percent budget_percent = 1;
    44
    45      // Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
    46      // number of active retries may never go below this number.
    47      //
    48      // This parameter is optional. Defaults to 3.
    49      google.protobuf.UInt32Value min_retry_concurrency = 2;
    50    }
    51
    52    // The :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`
    53    // the specified CircuitBreaker settings apply to.
    54    core.v3.RoutingPriority priority = 1 [(validate.rules).enum = {defined_only: true}];
    55
    56    // The maximum number of connections that Envoy will make to the upstream
    57    // cluster. If not specified, the default is 1024.
    58    google.protobuf.UInt32Value max_connections = 2;
    59
    60    // The maximum number of pending requests that Envoy will allow to the
    61    // upstream cluster. If not specified, the default is 1024.
    62    google.protobuf.UInt32Value max_pending_requests = 3;
    63
    64    // The maximum number of parallel requests that Envoy will make to the
    65    // upstream cluster. If not specified, the default is 1024.
    66    google.protobuf.UInt32Value max_requests = 4;
    67
    68    // The maximum number of parallel retries that Envoy will allow to the
    69    // upstream cluster. If not specified, the default is 3.
    70    google.protobuf.UInt32Value max_retries = 5;
    71
    72    // Specifies a limit on concurrent retries in relation to the number of active requests. This
    73    // parameter is optional.
    74    //
    75    // .. note::
    76    //
    77    //    If this field is set, the retry budget will override any configured retry circuit
    78    //    breaker.
    79    RetryBudget retry_budget = 8;
    80
    81    // If track_remaining is true, then stats will be published that expose
    82    // the number of resources remaining until the circuit breakers open. If
    83    // not specified, the default is false.
    84    //
    85    // .. note::
    86    //
    87    //    If a retry budget is used in lieu of the max_retries circuit breaker,
    88    //    the remaining retry resources remaining will not be tracked.
    89    bool track_remaining = 6;
    90
    91    // The maximum number of connection pools per cluster that Envoy will concurrently support at
    92    // once. If not specified, the default is unlimited. Set this for clusters which create a
    93    // large number of connection pools. See
    94    // :ref:`Circuit Breaking <arch_overview_circuit_break_cluster_maximum_connection_pools>` for
    95    // more details.
    96    google.protobuf.UInt32Value max_connection_pools = 7;
    97  }
    98
    99  // If multiple :ref:`Thresholds<envoy_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
   100  // are defined with the same :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`,
   101  // the first one in the list is used. If no Thresholds is defined for a given
   102  // :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`, the default values
   103  // are used.
   104  repeated Thresholds thresholds = 1;
   105}

View as plain text