Healthcheck filter: compute response based on upstream cluster health (#417)

Signed-off-by: Brian Pane <bpane@pinterest.com>
pull/419/head
Brian Pane 7 years ago committed by Matt Klein
parent 0747d643b1
commit b4a3031547
  1. 2
      STYLE.md
  2. 5
      api/base.proto
  3. 3
      api/filter/http/BUILD
  4. 7
      api/filter/http/health_check.proto

@ -67,3 +67,5 @@ In addition, the following conventions should be followed:
```
This is more efficient, extendable and self-describing.
* To represent percentage values, use the Percent message type defined in [api/base.proto](api/base.proto).

@ -35,6 +35,11 @@ message Locality {
string sub_zone = 3;
}
// Identifies a percentage, in the range [0.0, 100.0].
message Percent {
double value = 1 [(validate.rules).double = {gte: 0, lte: 100}];
}
// Identifies a specific Envoy instance. The node identifier is presented to the
// management server, which may use this identifier to distinguish per Envoy
// configuration for serving.

@ -37,6 +37,9 @@ api_proto_library(
api_proto_library(
name = "health_check",
srcs = ["health_check.proto"],
deps = [
"//api:base",
],
)
api_proto_library(

@ -5,6 +5,7 @@ package envoy.api.v2.filter.http;
import "google/protobuf/duration.proto";
import "google/protobuf/wrappers.proto";
import "api/base.proto";
import "validate/validate.proto";
// [#protodoc-title: Health check]
@ -21,4 +22,10 @@ message HealthCheck {
// If operating in pass through mode, the amount of time in milliseconds
// that the filter should cache the upstream response.
google.protobuf.Duration cache_time = 3;
// [#not-implemented-hide:]
// If operating in non-pass-through mode, specifies a set of upstream cluster
// names and the minimum percentage of servers in each of those clusters that
// must be healthy in order for the filter to return a 200.
map<string, Percent> cluster_min_healthy_percentages = 4;
}

Loading…
Cancel
Save