Skip to content

Commit

Permalink
Merge branch 'master' into mpuncel/http2-hc-goaway
Browse files Browse the repository at this point in the history
* master: (30 commits)
  Deflaked: Guarddog_impl_test (envoyproxy#14475)
  [fuzz] add fuzz tests for hpack encoding and decoding (envoyproxy#13315)
  [filters] Prevent a filter from sending local reply and continue (envoyproxy#14416)
  oauth2: improving coverage (envoyproxy#14479)
  owners: Change dio email address (envoyproxy#14498)
  macos build: Fix ninja install (envoyproxy#14495)
  http: use OptRef helper to reduce some boilerplate (envoyproxy#14361)
  doc: update test/integration/README.md (envoyproxy#14485)
  server: wait workers to start before draining parent. (envoyproxy#14319)
  api: relax inline_string length limitation in DataSource (envoyproxy#14461)
  oauth: properly stop filter chain when a response was sent (envoyproxy#14476)
  listener: deprecate use_proxy_proto (envoyproxy#14406)
  deps: update cel and remove a patch (envoyproxy#14473)
  preconnect: rename: (envoyproxy#14474)
  coverage: ratcheting limits (envoyproxy#14472)
  grpc mux: fix sending node again after stream is reset (envoyproxy#14080)
  [test] Replace printers_include with printers_lib. (envoyproxy#14442)
  tcp: nodelay in the new pool (envoyproxy#14453)
  test: replace mock_methodn macros with mock_method (envoyproxy#14450)
  tcp: extending tcp integration test (envoyproxy#14451)
  ...

Signed-off-by: Michael Puncel <mpuncel@squareup.com>
  • Loading branch information
mpuncel committed Dec 22, 2020
2 parents 31c0641 + 484a10d commit 5e8b981
Show file tree
Hide file tree
Showing 198 changed files with 2,256 additions and 814 deletions.
2 changes: 1 addition & 1 deletion OWNERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ routing PRs, questions, etc. to the right place.
* Data plane, codecs, security, configuration.
* Jose Nino ([junr03](https://github.com/junr03)) (jnino@lyft.com)
* Outlier detection, HTTP routing, xDS, configuration/operational questions.
* Dhi Aurrahman ([dio](https://github.com/dio)) (dio@tetrate.io)
* Dhi Aurrahman ([dio](https://github.com/dio)) (dio@rockybars.com)
* Lua, access logging, and general miscellany.
* Joshua Marantz ([jmarantz](https://github.com/jmarantz)) (jmarantz@google.com)
* Stats, abseil, scalability, and performance.
Expand Down
36 changes: 18 additions & 18 deletions api/envoy/config/cluster/v3/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -584,9 +584,9 @@ message Cluster {
}

// [#not-implemented-hide:]
message PrefetchPolicy {
message PreconnectPolicy {
// Indicates how many streams (rounded up) can be anticipated per-upstream for each
// incoming stream. This is useful for high-QPS or latency-sensitive services. Prefetching
// incoming stream. This is useful for high-QPS or latency-sensitive services. Preconnecting
// will only be done if the upstream is healthy.
//
// For example if this is 2, for an incoming HTTP/1.1 stream, 2 connections will be
Expand All @@ -595,46 +595,46 @@ message Cluster {
// serve both the original and presumed follow-up stream.
//
// In steady state for non-multiplexed connections a value of 1.5 would mean if there were 100
// active streams, there would be 100 connections in use, and 50 connections prefetched.
// active streams, there would be 100 connections in use, and 50 connections preconnected.
// This might be a useful value for something like short lived single-use connections,
// for example proxying HTTP/1.1 if keep-alive were false and each stream resulted in connection
// termination. It would likely be overkill for long lived connections, such as TCP proxying SMTP
// or regular HTTP/1.1 with keep-alive. For long lived traffic, a value of 1.05 would be more
// reasonable, where for every 100 connections, 5 prefetched connections would be in the queue
// reasonable, where for every 100 connections, 5 preconnected connections would be in the queue
// in case of unexpected disconnects where the connection could not be reused.
//
// If this value is not set, or set explicitly to one, Envoy will fetch as many connections
// as needed to serve streams in flight. This means in steady state if a connection is torn down,
// a subsequent streams will pay an upstream-rtt latency penalty waiting for streams to be
// prefetched.
// preconnected.
//
// This is limited somewhat arbitrarily to 3 because prefetching connections too aggressively can
// harm latency more than the prefetching helps.
google.protobuf.DoubleValue per_upstream_prefetch_ratio = 1
// This is limited somewhat arbitrarily to 3 because preconnecting too aggressively can
// harm latency more than the preconnecting helps.
google.protobuf.DoubleValue per_upstream_preconnect_ratio = 1
[(validate.rules).double = {lte: 3.0 gte: 1.0}];

// Indicates how many many streams (rounded up) can be anticipated across a cluster for each
// stream, useful for low QPS services. This is currently supported for a subset of
// deterministic non-hash-based load-balancing algorithms (weighted round robin, random).
// Unlike per_upstream_prefetch_ratio this prefetches across the upstream instances in a
// Unlike per_upstream_preconnect_ratio this preconnects across the upstream instances in a
// cluster, doing best effort predictions of what upstream would be picked next and
// pre-establishing a connection.
//
// For example if prefetching is set to 2 for a round robin HTTP/2 cluster, on the first
// incoming stream, 2 connections will be prefetched - one to the first upstream for this
// For example if preconnecting is set to 2 for a round robin HTTP/2 cluster, on the first
// incoming stream, 2 connections will be preconnected - one to the first upstream for this
// cluster, one to the second on the assumption there will be a follow-up stream.
//
// Prefetching will be limited to one prefetch per configured upstream in the cluster.
// Preconnecting will be limited to one preconnect per configured upstream in the cluster.
//
// If this value is not set, or set explicitly to one, Envoy will fetch as many connections
// as needed to serve streams in flight, so during warm up and in steady state if a connection
// is closed (and per_upstream_prefetch_ratio is not set), there will be a latency hit for
// is closed (and per_upstream_preconnect_ratio is not set), there will be a latency hit for
// connection establishment.
//
// If both this and prefetch_ratio are set, Envoy will make sure both predicted needs are met,
// basically prefetching max(predictive-prefetch, per-upstream-prefetch), for each upstream.
// If both this and preconnect_ratio are set, Envoy will make sure both predicted needs are met,
// basically preconnecting max(predictive-preconnect, per-upstream-preconnect), for each upstream.
// TODO(alyssawilk) per LB docs and LB overview docs when unhiding.
google.protobuf.DoubleValue predictive_prefetch_ratio = 2
google.protobuf.DoubleValue predictive_preconnect_ratio = 2
[(validate.rules).double = {lte: 3.0 gte: 1.0}];
}

Expand Down Expand Up @@ -1029,8 +1029,8 @@ message Cluster {
TrackClusterStats track_cluster_stats = 49;

// [#not-implemented-hide:]
// Prefetch configuration for this cluster.
PrefetchPolicy prefetch_policy = 50;
// Preconnect configuration for this cluster.
PreconnectPolicy preconnect_policy = 50;

// If `connection_pool_per_downstream_connection` is true, the cluster will use a separate
// connection pool for every downstream connection
Expand Down
10 changes: 8 additions & 2 deletions api/envoy/config/cluster/v3/outlier_detection.proto
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;

// See the :ref:`architecture overview <arch_overview_outlier_detection>` for
// more information on outlier detection.
// [#next-free-field: 21]
// [#next-free-field: 22]
message OutlierDetection {
option (udpa.annotations.versioning).previous_message_type =
"envoy.api.v2.cluster.OutlierDetection";
Expand All @@ -34,7 +34,8 @@ message OutlierDetection {
google.protobuf.Duration interval = 2 [(validate.rules).duration = {gt {}}];

// The base time that a host is ejected for. The real time is equal to the
// base time multiplied by the number of times the host has been ejected.
// base time multiplied by the number of times the host has been ejected and is
// capped by :ref:`max_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
// Defaults to 30000ms or 30s.
google.protobuf.Duration base_ejection_time = 3 [(validate.rules).duration = {gt {}}];

Expand Down Expand Up @@ -148,4 +149,9 @@ message OutlierDetection {
// volume is lower than this setting, failure percentage-based ejection will not be performed for
// this host. Defaults to 50.
google.protobuf.UInt32Value failure_percentage_request_volume = 20;

// The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
// for more information.
// Defaults to 300000ms or 300s.
google.protobuf.Duration max_ejection_time = 21 [(validate.rules).duration = {gt {}}];
}
38 changes: 19 additions & 19 deletions api/envoy/config/cluster/v4alpha/cluster.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions api/envoy/config/cluster/v4alpha/outlier_detection.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions api/envoy/config/core/v3/base.proto
Original file line number Diff line number Diff line change
Expand Up @@ -331,10 +331,10 @@ message DataSource {
string filename = 1 [(validate.rules).string = {min_len: 1}];

// Bytes inlined in the configuration.
bytes inline_bytes = 2 [(validate.rules).bytes = {min_len: 1}];
bytes inline_bytes = 2;

// String inlined in the configuration.
string inline_string = 3 [(validate.rules).string = {min_len: 1}];
string inline_string = 3;
}
}

Expand Down
4 changes: 2 additions & 2 deletions api/envoy/config/core/v4alpha/base.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion api/envoy/config/listener/v3/listener_components.proto
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,11 @@ message FilterChain {
// load balancers including the AWS ELB support this option. If the option is
// absent or set to false, Envoy will use the physical peer address of the
// connection as the remote address.
google.protobuf.BoolValue use_proxy_proto = 4;
//
// This field is deprecated. Add a
// :ref:`PROXY protocol listener filter <config_listener_filters_proxy_protocol>`
// explicitly instead.
google.protobuf.BoolValue use_proxy_proto = 4 [deprecated = true];

// [#not-implemented-hide:] filter chain metadata.
core.v3.Metadata metadata = 5;
Expand Down
12 changes: 2 additions & 10 deletions api/envoy/config/listener/v4alpha/listener_components.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 5e8b981

Please sign in to comment.