All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.compute.kotlin.outputs.GetBackendServiceOutlierDetection.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.outputs

import kotlin.Int
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @property baseEjectionTimes 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. Defaults to
 * 30000ms or 30s.
 * @property consecutiveErrors Number of errors before a host is ejected from the connection pool. When the
 * backend host is accessed over HTTP, a 5xx return code qualifies as an error.
 * Defaults to 5.
 * @property 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 5.
 * @property enforcingConsecutiveErrors The percentage chance that a host will be actually 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 100.
 * @property enforcingConsecutiveGatewayFailure The percentage chance that a host will be actually 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 0.
 * @property enforcingSuccessRate The percentage chance that a host 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.
 * @property intervals Time interval between ejection sweep analysis. This can result in both new
 * ejections as well as hosts being returned to service. Defaults to 10 seconds.
 * @property maxEjectionPercent Maximum percentage of hosts in the load balancing pool for the backend service
 * that can be ejected. Defaults to 10%.
 * @property successRateMinimumHosts The number of hosts in a cluster that must have enough request volume to detect
 * success rate outliers. If the number of hosts is less than this setting, outlier
 * detection via success rate statistics is not performed for any host in the
 * cluster. Defaults to 5.
 * @property successRateRequestVolume The minimum number of total requests that must be collected in one interval (as
 * defined by the interval duration above) to include this host 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 host. Defaults
 * to 100.
 * @property 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 * 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.
 */
public data class GetBackendServiceOutlierDetection(
    public val baseEjectionTimes: List,
    public val consecutiveErrors: Int,
    public val consecutiveGatewayFailure: Int,
    public val enforcingConsecutiveErrors: Int,
    public val enforcingConsecutiveGatewayFailure: Int,
    public val enforcingSuccessRate: Int,
    public val intervals: List,
    public val maxEjectionPercent: Int,
    public val successRateMinimumHosts: Int,
    public val successRateRequestVolume: Int,
    public val successRateStdevFactor: Int,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.compute.outputs.GetBackendServiceOutlierDetection): GetBackendServiceOutlierDetection = GetBackendServiceOutlierDetection(
            baseEjectionTimes = javaType.baseEjectionTimes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetBackendServiceOutlierDetectionBaseEjectionTime.Companion.toKotlin(args0)
                })
            }),
            consecutiveErrors = javaType.consecutiveErrors(),
            consecutiveGatewayFailure = javaType.consecutiveGatewayFailure(),
            enforcingConsecutiveErrors = javaType.enforcingConsecutiveErrors(),
            enforcingConsecutiveGatewayFailure = javaType.enforcingConsecutiveGatewayFailure(),
            enforcingSuccessRate = javaType.enforcingSuccessRate(),
            intervals = javaType.intervals().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.compute.kotlin.outputs.GetBackendServiceOutlierDetectionInterval.Companion.toKotlin(args0)
                })
            }),
            maxEjectionPercent = javaType.maxEjectionPercent(),
            successRateMinimumHosts = javaType.successRateMinimumHosts(),
            successRateRequestVolume = javaType.successRateRequestVolume(),
            successRateStdevFactor = javaType.successRateStdevFactor(),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy