diff --git a/app/vmalert/README.md b/app/vmalert/README.md index 3b1df81030..77d01a160b 100644 --- a/app/vmalert/README.md +++ b/app/vmalert/README.md @@ -166,8 +166,10 @@ The shortlist of configuration flags is the following: Optional basic auth password for -datasource.url -datasource.basicAuth.username string Optional basic auth username for -datasource.url - -datasource.lookback duration + -datasource.lookback duration Lookback defines how far to look into past when evaluating queries. For example, if datasource.lookback=5m then param "time" with value now()-5m will be added to every query. + -datasource.maxIdleConnections int + Defines the number of idle (keep-alive connections) to configured datasource.Consider to set this value equal to the value: groups_total * group.concurrency. Too low value may result into high number of sockets in TIME_WAIT state. (default 100) -datasource.tlsCAFile string Optional path to TLS CA file to use for verifying connections to -datasource.url. By default system CA is used -datasource.tlsCertFile string diff --git a/app/vmalert/datasource/init.go b/app/vmalert/datasource/init.go index 89814dde59..62e7848eb0 100644 --- a/app/vmalert/datasource/init.go +++ b/app/vmalert/datasource/init.go @@ -24,6 +24,8 @@ var ( lookBack = flag.Duration("datasource.lookback", 0, "Lookback defines how far to look into past when evaluating queries. "+ "For example, if datasource.lookback=5m then param \"time\" with value now()-5m will be added to every query.") + maxIdleConnections = flag.Int("datasource.maxIdleConnections", 100, "Defines the number of idle (keep-alive connections) to configured datasource."+ + "Consider to set this value equal to the value: groups_total * group.concurrency. Too low value may result into high number of sockets in TIME_WAIT state.") ) // Init creates a Querier from provided flag values. @@ -36,6 +38,7 @@ func Init() (Querier, error) { if err != nil { return nil, fmt.Errorf("failed to create transport: %w", err) } + tr.MaxIdleConns = *maxIdleConnections c := &http.Client{Transport: tr} return NewVMStorage(*addr, *basicAuthUsername, *basicAuthPassword, *lookBack, c), nil } diff --git a/docs/Single-server-VictoriaMetrics.md b/docs/Single-server-VictoriaMetrics.md index 403ee76045..9a33bd1498 100644 --- a/docs/Single-server-VictoriaMetrics.md +++ b/docs/Single-server-VictoriaMetrics.md @@ -1175,7 +1175,9 @@ VictoriaMetrics also exposes currently running queries with their execution time has at least 20% of free space comparing to disk size. The remaining amount of free space can be [monitored](#monitoring) via `vm_free_disk_space_bytes` metric. The total size of data stored on the disk can be monitored via sum of `vm_data_size_bytes` metrics. - See also `vm_merge_need_free_disk_space` metrics, which are set to 1 if background merge cannot be initiated due to free disk space shortage. + See also `vm_merge_need_free_disk_space` metrics, which are set to values higher than 0 + if background merge cannot be initiated due to free disk space shortage. The value shows the number of per-month partitions, + which would start background merge if they had more free disk space. * If VictoriaMetrics doesn't work because of certain parts are corrupted due to disk errors, then just remove directories with broken parts. This will recover VictoriaMetrics at the cost diff --git a/docs/vmalert.md b/docs/vmalert.md index 3b1df81030..77d01a160b 100644 --- a/docs/vmalert.md +++ b/docs/vmalert.md @@ -166,8 +166,10 @@ The shortlist of configuration flags is the following: Optional basic auth password for -datasource.url -datasource.basicAuth.username string Optional basic auth username for -datasource.url - -datasource.lookback duration + -datasource.lookback duration Lookback defines how far to look into past when evaluating queries. For example, if datasource.lookback=5m then param "time" with value now()-5m will be added to every query. + -datasource.maxIdleConnections int + Defines the number of idle (keep-alive connections) to configured datasource.Consider to set this value equal to the value: groups_total * group.concurrency. Too low value may result into high number of sockets in TIME_WAIT state. (default 100) -datasource.tlsCAFile string Optional path to TLS CA file to use for verifying connections to -datasource.url. By default system CA is used -datasource.tlsCertFile string diff --git a/go.sum b/go.sum index e0e4431e4c..831e56c169 100644 --- a/go.sum +++ b/go.sum @@ -607,7 +607,6 @@ github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.13.0 h1:vJlpe9wPgDRM1Z+7Wj3zUUjY1nr6/1jNKyl7llliccg= github.com/prometheus/common v0.13.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.14.0 h1:RHRyE8UocrbjU+6UvRzwi6HjiDfxrrBU91TtbKzkGp4= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= @@ -616,7 +615,6 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=