Get desktop application:
View/edit binary Protocol Buffers messages
Configuration for the cds LB policy.
Used in:
Required.
If true, a dynamic subscription will be started for the cluster.
Configuration for eds LB policy. Deprecated.
Used in:
Cluster name. Required.
EDS service name, as returned in CDS. May be unset if not specified in CDS.
Server to send load reports to. If unset, no load reporting is done. If set to empty string, load reporting will be sent to the same server as we are getting xds data from.
Locality-picking policy. This policy's config is expected to be in the format used by the weighted_target policy. Note that the config should include an empty value for the "targets" field; that empty value will be replaced by one that is dynamically generated based on the EDS data. Optional; defaults to "weighted_target".
Endpoint-picking policy. This will be configured as the policy for each child in the locality-policy's config. Optional; defaults to "round_robin".
Configuration for grpclb LB policy.
Used in:
Optional. What LB policy to use for routing between the backend addresses. If unset, defaults to round_robin. Currently, the only supported values are round_robin and pick_first. Note that this will be used both in balancer mode and in fallback mode. Multiple LB policies can be specified; clients will iterate through the list in order and stop at the first policy that they support.
Optional. If specified, overrides the name of the service to be sent to the balancer.
Optional. The timeout in seconds for receiving the server list from the LB server. Defaults to 10s.
Configuration for the least_request LB policy.
Used in:
Selects LB policy and provides corresponding configuration. In general, all instances of this field should be repeated. Clients will iterate through the list in order and stop at the first policy that they support. This allows the service config to specify custom policies that may not be known to all clients. - If the config for the first supported policy is invalid, the whole service config is invalid. - If the list doesn't contain any supported policy, the whole service config is invalid.
Used in: , , , , , , , , , , , , , ,
Exactly one LB policy may be configured.
For each new LB policy supported by gRPC, a new field must be added here. The field's name must be the LB policy name and its type is a message that provides whatever configuration parameters are needed by the LB policy. The configuration message will be passed to the LB policy when it is instantiated on the client. If the LB policy does not require any configuration parameters, the message for that LB policy may be empty. Note that if an LB policy contains another nested LB policy (e.g., a gslb policy picks the cluster and then delegates to a round_robin policy to pick the backend within that cluster), its configuration message may include a nested instance of the LoadBalancingConfig message to configure the nested LB policy.
gRPC lookaside load balancing. This will eventually be deprecated by the new xDS-based local balancing policy.
xDS-based load balancing.
Deprecated xDS-related policies.
Configuration for lrs LB policy. Deprecated.
Used in:
Cluster name. Required.
EDS service name, as returned in CDS. May be unset if not specified in CDS.
Server to send load reports to. Required. If set to empty string, load reporting will be sent to the same server as we are getting xds data from.
Endpoint-picking policy.
The locality for which this policy will report load. Required.
Used in:
Configuration for a method.
Used in:
Whether RPCs sent to this method should wait until the connection is ready by default. If false, the RPC will abort immediately if there is a transient failure connecting to the server. Otherwise, gRPC will attempt to connect until the deadline is exceeded. The value specified via the gRPC client API will override the value set here. However, note that setting the value in the client API will also affect transient errors encountered during name resolution, which cannot be caught by the value here, since the service config is obtained by the gRPC client via name resolution.
The default timeout in seconds for RPCs sent to this method. This can be overridden in code. If no reply is received in the specified amount of time, the request is aborted and a DEADLINE_EXCEEDED error status is returned to the caller. The actual deadline used will be the minimum of the value specified here and the value set by the application via the gRPC client API. If either one is not set, then the other will be used. If neither is set, then the request has no deadline.
The maximum allowed payload size for an individual request or object in a stream (client->server) in bytes. The size which is measured is the serialized payload after per-message compression (but before stream compression) in bytes. This applies both to streaming and non-streaming requests. The actual value used is the minimum of the value specified here and the value set by the application via the gRPC client API. If either one is not set, then the other will be used. If neither is set, then the built-in default is used. If a client attempts to send an object larger than this value, it will not be sent and the client will see a ClientError. Note that 0 is a valid value, meaning that the request message must be empty.
The maximum allowed payload size for an individual response or object in a stream (server->client) in bytes. The size which is measured is the serialized payload after per-message compression (but before stream compression) in bytes. This applies both to streaming and non-streaming requests. The actual value used is the minimum of the value specified here and the value set by the application via the gRPC client API. If either one is not set, then the other will be used. If neither is set, then the built-in default is used. If a server attempts to send an object larger than this value, it will not be sent, and a ServerError will be sent to the client instead. Note that 0 is a valid value, meaning that the response message must be empty.
Only one of retry_policy or hedging_policy may be set. If neither is set, RPCs will not be retried or hedged.
The hedging policy for outgoing RPCs. Hedged RPCs may execute more than once on the server, so only idempotent methods should specify a hedging policy.
Used in:
The hedging policy will send up to max_requests RPCs. This number represents the total number of all attempts, including the original attempt. This field is required and must be greater than 1. Any value greater than 5 will be treated as if it were 5.
The first RPC will be sent immediately, but the max_requests-1 subsequent hedged RPCs will be sent at intervals of every hedging_delay. Set this to 0 to immediately send all max_requests RPCs.
The set of status codes which indicate other hedged RPCs may still succeed. If a non-fatal status code is returned by the server, hedged RPCs will continue. Otherwise, outstanding requests will be canceled and the error returned to the client application layer. This field is optional.
The names of the methods to which this configuration applies. - MethodConfig without names (empty list) will be skipped. - Each name entry must be unique across the entire ServiceConfig. - If the 'method' field is empty, this MethodConfig specifies the defaults for all methods for the specified service. - If the 'service' field is empty, the 'method' field must be empty, and this MethodConfig specifies the default for all methods (it's the default config). When determining which MethodConfig to use for a given RPC, the most specific match wins. For example, let's say that the service config contains the following MethodConfig entries: method_config { name { } ... } method_config { name { service: "MyService" } ... } method_config { name { service: "MyService" method: "Foo" } ... } MyService/Foo will use the third entry, because it exactly matches the service and method name. MyService/Bar will use the second entry, because it provides the default for all methods of MyService. AnotherService/Baz will use the first entry, because it doesn't match the other two. In JSON representation, value "", value `null`, and not present are the same. The following are the same Name: - { "service": "s" } - { "service": "s", "method": null } - { "service": "s", "method": "" }
Used in:
Required. Includes proto package name.
The retry policy for outgoing RPCs.
Used in:
The maximum number of RPC attempts, including the original attempt. This field is required and must be greater than 1. Any value greater than 5 will be treated as if it were 5.
Exponential backoff parameters. The initial retry attempt will occur at random(0, initial_backoff). In general, the nth attempt will occur at random(0, min(initial_backoff*backoff_multiplier**(n-1), max_backoff)). Required. Must be greater than zero.
Required. Must be greater than zero.
Required. Must be greater than zero.
The set of status codes which may be retried. This field is required and must be non-empty.
Configuration for outlier_detection LB policy
Used in: ,
The time interval between ejection analysis sweeps. This can result in both new ejections as well as addresses being returned to service. Defaults to 10000ms or 10s.
The base time that as address is ejected for. The real time is equal to the base time multiplied by the number of times the address has been ejected. Defaults to 30000ms or 30s.
The maximum time that an address is ejected for. If not specified, the default value (300000ms or 300s) or the base_ejection_time value is applied, whatever is larger.
The maximum % of an address list that can be ejected due to outlier detection. Defaults to 10% but will eject at least one address regardless of the value.
If set, success rate ejections will be performed
If set, failure rate ejections will be performed
The config for the child policy
Parameters for the failure percentage algorithm. This algorithm ejects individual endpoints whose failure rate is greater than some threshold, independently of any other endpoint.
Used in:
The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given address is greater than or equal to this value, it will be ejected. Defaults to 85.
The % chance that an address will be actually ejected when an outlier status is detected through failure percentage statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
The minimum number of addresses in order to perform failure percentage-based ejection. If the total number of addresses is less than this value, failure percentage-based ejection will not be performed. Defaults to 5.
The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this address. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. Defaults to 50.
Parameters for the success rate ejection algorithm. This algorithm monitors the request success rate for all endpoints and ejects individual endpoints whose success rates are statistical outliers.
Used in:
This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
The % chance that an address will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
The number of addresses that must have enough request volume to detect success rate outliers. If the number of addresses is less than this setting, outlier detection via success rate statistics is not performed for any addresses. Defaults to 5.
The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this address in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that address. Defaults to 100.
Configuration for the xds_override_host LB policy.
Used in:
valid health status for hosts that are considered when using xds_override_host_experimental policy. Default is [UNKNOWN, HEALTHY]
Used in: ,
Configuration for pick_first LB policy.
Used in:
If set to true, instructs the LB policy to randomly shuffle the list of addresses received from the name resolver before attempting to connect to them.
Configuration for priority LB policy.
Used in:
A list of child names in decreasing priority order (i.e., first element is the highest priority).
A map of name to child policy configuration. The names are used to allow the priority policy to update existing child policies instead of creating new ones every time it receives a config update.
Used in:
If true, will ignore reresolution requests from this child.
Configuration for the random_subsetting_experimental LB policy. See gRFC A68.
Used in:
Number of backends every client will be connected to. The value is required and must be greater than 0.
The configuration for the child policy. The value is required.
Configuration for ring_hash LB policy.
Used in:
A client-side option will cap these values to 4096. If either of these values are greater than the client-side cap, they will be treated as the client-side cap value.
Optional, defaults to 1024, max 8M.
Optional, defaults to 4096, max 8M.
Optional, see gRFC A76.
Config for RLS LB policy.
Used in:
Service config to use for the RLS channel.
Field name to add to child policy config to contain the target name.
Configuration for round_robin LB policy.
Used in:
(message has no fields)
A ServiceConfig represents information about a service but is not specific to any name resolver.
Used in:
Multiple LB policies can be specified; clients will iterate through the list in order and stop at the first policy that they support. If none are supported, the service config is considered invalid.
Per-method configuration.
Settings to control dynamic connection scaling. For details, see: https://github.com/grpc/proposal/blob/master/A105-max_concurrent_streams-connection-scaling.md
Used in:
Maximum connections gRPC will maintain for each subchannel in this channel. When no streams are available for an RPC in a subchannel, gRPC will automatically create new connections up to this limit. If this value changes during the life of a channel, existing subchannels will be updated to reflect the change. No connections will be closed as a result of lowering this value; down-scaling will only happen as connections are lost naturally. Values higher than the client-enforced limit (by default, 10) will be clamped to that limit.
Used in:
Service name to use in the health-checking request.
Load balancing policy. Note that load_balancing_policy is deprecated in favor of load_balancing_config; the former will be used only if the latter is unset. If no LB policy is configured here, then the default is pick_first. If the policy name is set via the client API, that value overrides the value specified here. If the deprecated load_balancing_policy field is used, note that if the resolver returns at least one balancer address (as opposed to backend addresses), gRPC will use grpclb (see https://github.com/grpc/grpc/blob/master/doc/load-balancing.md), regardless of what policy is configured here. However, if the resolver returns at least one backend address in addition to the balancer address(es), the client may fall back to the requested policy if it is unable to reach any of the grpclb load balancers.
Used in:
If a RetryThrottlingPolicy is provided, gRPC will automatically throttle retry attempts and hedged RPCs when the client's ratio of failures to successes exceeds a threshold. For each server name, the gRPC client will maintain a token_count which is initially set to max_tokens. Every outgoing RPC (regardless of service or method invoked) will change token_count as follows: - Every failed RPC will decrement the token_count by 1. - Every successful RPC will increment the token_count by token_ratio. If token_count is less than or equal to max_tokens / 2, then RPCs will not be retried and hedged RPCs will not be sent.
Used in:
The number of tokens starts at max_tokens. The token_count will always be between 0 and max_tokens. This field is required and must be greater than zero.
The amount of tokens to add on each successful RPC. Typically this will be some number between 0 and 1, e.g., 0.1. This field is required and must be greater than zero. Up to 3 decimal places are supported.
Configuration for weighted_round_robin LB policy.
Used in:
Whether to enable out-of-band utilization reporting collection from the endpoints. By default, per-request utilization reporting is used.
Load reporting interval to request from the server. Note that the server may not provide reports as frequently as the client requests. Used only when enable_oob_load_report is true. Default is 10 seconds.
A given endpoint must report load metrics continuously for at least this long before the endpoint weight will be used. This avoids churn when the set of endpoint addresses changes. Takes effect both immediately after we establish a connection to an endpoint and after weight_expiration_period has caused us to stop using the most recent load metrics. Default is 10 seconds.
If a given endpoint has not reported load metrics in this long, then we stop using the reported weight. This ensures that we do not continue to use very stale weights. Once we stop using a stale value, if we later start seeing fresh reports again, the blackout_period applies. Defaults to 3 minutes.
How often endpoint weights are recalculated. Values less than 100ms are capped at 100ms. Default is 1 second.
The multiplier used to adjust endpoint weights with the error rate calculated as eps/qps. Configuration is rejected if this value is negative. Default is 1.0.
Configuration for weighted_target LB policy.
Used in:
Used in:
Configuration for xds_cluster_impl LB policy.
Used in:
Cluster name. Required.
Child policy.
EDS service name. Not set if cluster is not an EDS cluster or if it does not specify an EDS service name.
Server to send load reports to. If unset, no load reporting is done. If set to empty string, load reporting will be sent to the same server as we are getting xds data from. DEPRECATED: Use new lrs_load_reporting_server field instead.
LRS server to send load reports to. If not present, load reporting will be disabled. Supercedes lrs_load_reporting_server_name field.
Maximum number of outstanding requests can be made to the upstream cluster. Default is 1024.
Telemetry labels associated with this cluster
Drop configuration.
Used in:
Configuration for xds_cluster_manager_experimental LB policy.
Used in:
Used in:
Configuration for xds_cluster_resolver LB policy. Deprecated.
Used in:
Ordered list of discovery mechanisms. Must have at least one element. Results from each discovery mechanism are concatenated together in successive priorities.
xDS LB policy. Will be used as the child config of the xds_cluster_impl LB policy.
Describes a discovery mechanism instance. For EDS or LOGICAL_DNS clusters, there will be exactly one DiscoveryMechanism, which will describe the cluster of the parent CDS policy. For aggregate clusters, there will be one DiscoveryMechanism for each underlying cluster.
Used in:
Cluster name.
LRS server to send load reports to. If not present, load reporting will be disabled. If set to the empty string, load reporting will be sent to the same server that we obtained CDS data from. DEPRECATED: Use new lrs_load_reporting_server field instead.
LRS server to send load reports to. If not present, load reporting will be disabled. Supercedes lrs_load_reporting_server_name field.
Maximum number of outstanding requests can be made to the upstream cluster. Default is 1024.
For type EDS only. EDS service name, as returned in CDS. May be unset if not specified in CDS.
For type LOGICAL_DNS only. DNS name to resolve in "host:port" form.
The configuration for outlier_detection child policies Within this message, the child_policy field will be ignored
The configuration for xds_override_host child policy
Telemetry labels associated with this cluster
Used in:
Configuration for xds LB policy. Deprecated.
Used in:
Name of balancer to connect to.
Optional. What LB policy to use for intra-locality routing. If unset, will use whatever algorithm is specified by the balancer. Multiple LB policies can be specified; clients will iterate through the list in order and stop at the first policy that they support.
Optional. What LB policy to use in fallback mode. If not specified, defaults to round_robin. Multiple LB policies can be specified; clients will iterate through the list in order and stop at the first policy that they support.
Optional. Name to use in EDS query. If not present, defaults to the server name from the target URI.
LRS server to send load reports to. If not present, load reporting will be disabled. If set to the empty string, load reporting will be sent to the same server that we obtained CDS data from.
Represents an xDS server. Deprecated.
Used in: ,
Required.
A list of channel creds to use. The first supported type will be used.
A repeated list of server features.
Used in:
Required.
Optional JSON config.
Configuration for the xds_wrr_locality load balancing policy.
Used in: