com.google.api.services.compute.model.OutlierDetection Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/googleapis/google-api-java-client-services/
* Modify at your own risk.
*/
package com.google.api.services.compute.model;
/**
* Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend
* service.
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Compute Engine API. For a detailed explanation see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class OutlierDetection extends com.google.api.client.json.GenericJson {
/**
* The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a
* backend endpoint is returned back to the load balancing pool, it can be ejected again in
* another ejection analysis. Thus, the total ejection time is equal to the base ejection time
* multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or
* 30s.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private Duration baseEjectionTime;
/**
* Number of consecutive errors before a backend endpoint is ejected from the load balancing pool.
* When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error.
* Defaults to 5.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer consecutiveErrors;
/**
* The number of consecutive gateway failures (502, 503, 504 status or connection errors that are
* mapped to one of those status codes) before a consecutive gateway failure ejection occurs.
* Defaults to 3.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer consecutiveGatewayFailure;
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up
* slowly. Defaults to 0.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer enforcingConsecutiveErrors;
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive gateway failures. This setting can be used to disable ejection or
* to ramp it up slowly. Defaults to 100.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer enforcingConsecutiveGatewayFailure;
/**
* The percentage chance that a backend endpoint will be 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. Not supported when the backend service uses Serverless NEG.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer enforcingSuccessRate;
/**
* Time interval between ejection analysis sweeps. This can result in both new ejections and
* backend endpoints being returned to service. The interval is equal to the number of seconds as
* defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in
* outlierDetection.interval.nanos. Defaults to 1 second.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private Duration interval;
/**
* Maximum percentage of backend endpoints in the load balancing pool for the backend service that
* can be ejected if the ejection conditions are met. Defaults to 50%.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer maxEjectionPercent;
/**
* The number of backend endpoints in the load balancing pool that must have enough request volume
* to detect success rate outliers. If the number of backend endpoints is fewer than this setting,
* outlier detection via success rate statistics is not performed for any backend endpoint in the
* load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer successRateMinimumHosts;
/**
* The minimum number of total requests that must be collected in one interval (as defined by the
* interval duration above) to include this backend endpoint 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 backend endpoint. Defaults to 100. Not supported when the
* backend service uses Serverless NEG.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer successRateRequestVolume;
/**
* 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 *
* successRateStdevFactor). 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. Not supported when
* the backend service uses Serverless NEG.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer successRateStdevFactor;
/**
* The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a
* backend endpoint is returned back to the load balancing pool, it can be ejected again in
* another ejection analysis. Thus, the total ejection time is equal to the base ejection time
* multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or
* 30s.
* @return value or {@code null} for none
*/
public Duration getBaseEjectionTime() {
return baseEjectionTime;
}
/**
* The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a
* backend endpoint is returned back to the load balancing pool, it can be ejected again in
* another ejection analysis. Thus, the total ejection time is equal to the base ejection time
* multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or
* 30s.
* @param baseEjectionTime baseEjectionTime or {@code null} for none
*/
public OutlierDetection setBaseEjectionTime(Duration baseEjectionTime) {
this.baseEjectionTime = baseEjectionTime;
return this;
}
/**
* Number of consecutive errors before a backend endpoint is ejected from the load balancing pool.
* When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error.
* Defaults to 5.
* @return value or {@code null} for none
*/
public java.lang.Integer getConsecutiveErrors() {
return consecutiveErrors;
}
/**
* Number of consecutive errors before a backend endpoint is ejected from the load balancing pool.
* When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error.
* Defaults to 5.
* @param consecutiveErrors consecutiveErrors or {@code null} for none
*/
public OutlierDetection setConsecutiveErrors(java.lang.Integer consecutiveErrors) {
this.consecutiveErrors = consecutiveErrors;
return this;
}
/**
* The number of consecutive gateway failures (502, 503, 504 status or connection errors that are
* mapped to one of those status codes) before a consecutive gateway failure ejection occurs.
* Defaults to 3.
* @return value or {@code null} for none
*/
public java.lang.Integer getConsecutiveGatewayFailure() {
return consecutiveGatewayFailure;
}
/**
* The number of consecutive gateway failures (502, 503, 504 status or connection errors that are
* mapped to one of those status codes) before a consecutive gateway failure ejection occurs.
* Defaults to 3.
* @param consecutiveGatewayFailure consecutiveGatewayFailure or {@code null} for none
*/
public OutlierDetection setConsecutiveGatewayFailure(java.lang.Integer consecutiveGatewayFailure) {
this.consecutiveGatewayFailure = consecutiveGatewayFailure;
return this;
}
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up
* slowly. Defaults to 0.
* @return value or {@code null} for none
*/
public java.lang.Integer getEnforcingConsecutiveErrors() {
return enforcingConsecutiveErrors;
}
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up
* slowly. Defaults to 0.
* @param enforcingConsecutiveErrors enforcingConsecutiveErrors or {@code null} for none
*/
public OutlierDetection setEnforcingConsecutiveErrors(java.lang.Integer enforcingConsecutiveErrors) {
this.enforcingConsecutiveErrors = enforcingConsecutiveErrors;
return this;
}
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive gateway failures. This setting can be used to disable ejection or
* to ramp it up slowly. Defaults to 100.
* @return value or {@code null} for none
*/
public java.lang.Integer getEnforcingConsecutiveGatewayFailure() {
return enforcingConsecutiveGatewayFailure;
}
/**
* The percentage chance that a backend endpoint will be ejected when an outlier status is
* detected through consecutive gateway failures. This setting can be used to disable ejection or
* to ramp it up slowly. Defaults to 100.
* @param enforcingConsecutiveGatewayFailure enforcingConsecutiveGatewayFailure or {@code null} for none
*/
public OutlierDetection setEnforcingConsecutiveGatewayFailure(java.lang.Integer enforcingConsecutiveGatewayFailure) {
this.enforcingConsecutiveGatewayFailure = enforcingConsecutiveGatewayFailure;
return this;
}
/**
* The percentage chance that a backend endpoint will be 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. Not supported when the backend service uses Serverless NEG.
* @return value or {@code null} for none
*/
public java.lang.Integer getEnforcingSuccessRate() {
return enforcingSuccessRate;
}
/**
* The percentage chance that a backend endpoint will be 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. Not supported when the backend service uses Serverless NEG.
* @param enforcingSuccessRate enforcingSuccessRate or {@code null} for none
*/
public OutlierDetection setEnforcingSuccessRate(java.lang.Integer enforcingSuccessRate) {
this.enforcingSuccessRate = enforcingSuccessRate;
return this;
}
/**
* Time interval between ejection analysis sweeps. This can result in both new ejections and
* backend endpoints being returned to service. The interval is equal to the number of seconds as
* defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in
* outlierDetection.interval.nanos. Defaults to 1 second.
* @return value or {@code null} for none
*/
public Duration getInterval() {
return interval;
}
/**
* Time interval between ejection analysis sweeps. This can result in both new ejections and
* backend endpoints being returned to service. The interval is equal to the number of seconds as
* defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in
* outlierDetection.interval.nanos. Defaults to 1 second.
* @param interval interval or {@code null} for none
*/
public OutlierDetection setInterval(Duration interval) {
this.interval = interval;
return this;
}
/**
* Maximum percentage of backend endpoints in the load balancing pool for the backend service that
* can be ejected if the ejection conditions are met. Defaults to 50%.
* @return value or {@code null} for none
*/
public java.lang.Integer getMaxEjectionPercent() {
return maxEjectionPercent;
}
/**
* Maximum percentage of backend endpoints in the load balancing pool for the backend service that
* can be ejected if the ejection conditions are met. Defaults to 50%.
* @param maxEjectionPercent maxEjectionPercent or {@code null} for none
*/
public OutlierDetection setMaxEjectionPercent(java.lang.Integer maxEjectionPercent) {
this.maxEjectionPercent = maxEjectionPercent;
return this;
}
/**
* The number of backend endpoints in the load balancing pool that must have enough request volume
* to detect success rate outliers. If the number of backend endpoints is fewer than this setting,
* outlier detection via success rate statistics is not performed for any backend endpoint in the
* load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.
* @return value or {@code null} for none
*/
public java.lang.Integer getSuccessRateMinimumHosts() {
return successRateMinimumHosts;
}
/**
* The number of backend endpoints in the load balancing pool that must have enough request volume
* to detect success rate outliers. If the number of backend endpoints is fewer than this setting,
* outlier detection via success rate statistics is not performed for any backend endpoint in the
* load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.
* @param successRateMinimumHosts successRateMinimumHosts or {@code null} for none
*/
public OutlierDetection setSuccessRateMinimumHosts(java.lang.Integer successRateMinimumHosts) {
this.successRateMinimumHosts = successRateMinimumHosts;
return this;
}
/**
* The minimum number of total requests that must be collected in one interval (as defined by the
* interval duration above) to include this backend endpoint 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 backend endpoint. Defaults to 100. Not supported when the
* backend service uses Serverless NEG.
* @return value or {@code null} for none
*/
public java.lang.Integer getSuccessRateRequestVolume() {
return successRateRequestVolume;
}
/**
* The minimum number of total requests that must be collected in one interval (as defined by the
* interval duration above) to include this backend endpoint 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 backend endpoint. Defaults to 100. Not supported when the
* backend service uses Serverless NEG.
* @param successRateRequestVolume successRateRequestVolume or {@code null} for none
*/
public OutlierDetection setSuccessRateRequestVolume(java.lang.Integer successRateRequestVolume) {
this.successRateRequestVolume = successRateRequestVolume;
return this;
}
/**
* 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 *
* successRateStdevFactor). 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. Not supported when
* the backend service uses Serverless NEG.
* @return value or {@code null} for none
*/
public java.lang.Integer getSuccessRateStdevFactor() {
return successRateStdevFactor;
}
/**
* 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 *
* successRateStdevFactor). 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. Not supported when
* the backend service uses Serverless NEG.
* @param successRateStdevFactor successRateStdevFactor or {@code null} for none
*/
public OutlierDetection setSuccessRateStdevFactor(java.lang.Integer successRateStdevFactor) {
this.successRateStdevFactor = successRateStdevFactor;
return this;
}
@Override
public OutlierDetection set(String fieldName, Object value) {
return (OutlierDetection) super.set(fieldName, value);
}
@Override
public OutlierDetection clone() {
return (OutlierDetection) super.clone();
}
}