diff --git a/app/vmauth/README.md b/app/vmauth/README.md index 72daeffc24..cf6ea3a192 100644 --- a/app/vmauth/README.md +++ b/app/vmauth/README.md @@ -351,6 +351,8 @@ See the docs at https://docs.victoriametrics.com/vmauth.html . Prefix for environment variables if -envflag.enable is set -eula By specifying this flag, you confirm that you have an enterprise license and accept the EULA https://victoriametrics.com/assets/VM_EULA.pdf . This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise.html + -failTimeout duration + Sets a delay period for load balancing to skip a malfunctioning backend. (defaults 3s) -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -fs.disableMmap diff --git a/app/vmauth/auth_config.go b/app/vmauth/auth_config.go index 3c7ce00ed6..6fab91dc27 100644 --- a/app/vmauth/auth_config.go +++ b/app/vmauth/auth_config.go @@ -134,7 +134,7 @@ func (bu *backendURL) isBroken() bool { } func (bu *backendURL) setBroken() { - deadline := fasttime.UnixTimestamp() + 3 + deadline := fasttime.UnixTimestamp() + uint64((*failTimeout).Seconds()) atomic.StoreUint64(&bu.brokenDeadline, deadline) } diff --git a/app/vmauth/main.go b/app/vmauth/main.go index c859e913cf..925bfb7c60 100644 --- a/app/vmauth/main.go +++ b/app/vmauth/main.go @@ -41,6 +41,7 @@ var ( reloadAuthKey = flag.String("reloadAuthKey", "", "Auth key for /-/reload http endpoint. It must be passed as authKey=...") logInvalidAuthTokens = flag.Bool("logInvalidAuthTokens", false, "Whether to log requests with invalid auth tokens. "+ `Such requests are always counted at vmauth_http_request_errors_total{reason="invalid_auth_token"} metric, which is exposed at /metrics page`) + failTimeout = flag.Duration("failTimeout", 3*time.Second, "Sets a delay period for load balancing to skip a malfunctioning backend.") ) func main() {