Skip to content

Commit 73bbc00

Browse files
barik.aaditya-32
barik.a
authored andcommittedNov 26, 2023
added failure percent algo support for grpc-xds proxyless
1 parent 2565f61 commit 73bbc00

11 files changed

+1963
-350
lines changed
 

‎kubernetes/customresourcedefinitions.gen.yaml

+472
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎networking/v1alpha3/destination_rule.pb.go

+466-175
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎networking/v1alpha3/destination_rule.pb.html

+177-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎networking/v1alpha3/destination_rule.proto

+68
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,74 @@ message OutlierDetection {
946946
// disabled by setting it to 0%. The default is 0% as it's not typically
947947
// applicable in k8s environments with few pods per service.
948948
int32 min_health_percent = 5;
949+
950+
// FailurePercent Algorithm for Grpc-xds proxyless for deciding
951+
// if the host is an outlier or not.
952+
FailurePercentageEjection failure_percentage_ejection = 10;
953+
954+
// SuccessRateEjection Algorithm for Grpc-xds proxyless for deciding
955+
// if the host is an outlier or not.
956+
SuccessRateEjection success_rate_ejection = 11;
957+
}
958+
959+
// Parameters for the failure percentage algorithm.
960+
// This algorithm ejects individual endpoints whose failure rate is greater than
961+
// some threshold, independently of any other endpoint
962+
// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
963+
message FailurePercentageEjection {
964+
// The failure percentage to use when determining failure percentage-based outlier detection. If
965+
// the failure percentage of a given address is greater than or equal to this value, it will be
966+
// ejected.
967+
google.protobuf.UInt32Value threshold = 1;
968+
969+
// The % chance that an address will be actually ejected when an outlier status is detected through
970+
// failure percentage statistics. This setting can be used to disable ejection or to ramp it up
971+
// slowly.
972+
google.protobuf.UInt32Value enforcement_percentage = 2;
973+
974+
// The minimum number of addresses in order to perform failure percentage-based ejection.
975+
// If the total number of addresses is less than this value, failure percentage-based
976+
// ejection will not be performed.
977+
google.protobuf.UInt32Value minimum_hosts = 3;
978+
979+
// The minimum number of total requests that must be collected in one interval (as defined by the
980+
// interval duration above) to perform failure percentage-based ejection for this address. If the
981+
// volume is lower than this setting, failure percentage-based ejection will not be performed for
982+
// this host.
983+
google.protobuf.UInt32Value request_volume = 4;
984+
}
985+
986+
// Parameters for the success rate ejection algorithm.
987+
// This algorithm monitors the request success rate for all endpoints and
988+
// ejects individual endpoints whose success rates are statistical outliers.
989+
// Defaults to values declared in envoy.config.cluster.v3.OutlierDetection.SuccessRateEjection
990+
message SuccessRateEjection {
991+
// This factor is used to determine the ejection threshold for success rate
992+
// outlier ejection. The ejection threshold is the difference between the
993+
// mean success rate, and the product of this factor and the standard
994+
// deviation of the mean success rate: mean - (stdev *
995+
// success_rate_stdev_factor). This factor is divided by a thousand to get a
996+
// double. That is, if the desired factor is 1.9, the runtime value should
997+
// be 1900.
998+
google.protobuf.UInt32Value stdev_factor = 1;
999+
1000+
// The % chance that an address will be actually ejected when an outlier status
1001+
// is detected through success rate statistics. This setting can be used to
1002+
// disable ejection or to ramp it up slowly.
1003+
google.protobuf.UInt32Value enforcement_percentage = 2;
1004+
1005+
// The number of addresses that must have enough request volume to
1006+
// detect success rate outliers. If the number of addresses is less than this
1007+
// setting, outlier detection via success rate statistics is not performed
1008+
// for any addresses.
1009+
google.protobuf.UInt32Value minimum_hosts = 3;
1010+
1011+
// The minimum number of total requests that must be collected in one
1012+
// interval (as defined by the interval duration above) to include this address
1013+
// in success rate based outlier detection. If the volume is lower than this
1014+
// setting, outlier detection via success rate statistics is not performed
1015+
// for that address.
1016+
google.protobuf.UInt32Value request_volume = 4;
9491017
}
9501018

9511019
// SSL/TLS related settings for upstream connections. See Envoy's [TLS

‎networking/v1alpha3/destination_rule_deepcopy.gen.go

+42
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎networking/v1alpha3/destination_rule_json.gen.go

+22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)