mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-03-11 15:34:56 +00:00
vmalert: add flag for disabling long-lived connections (keepalive) (#2395)
The new flag `datasource.disableKeepAlive` allows disabling keepalive connections. This may be useful if there are multiple datasource replicas (e.g. vmselects) behind the HTTP balancer to avoid uneven load spread because of long-lived connections. Signed-off-by: hagen1778 <roman@victoriametrics.com>
This commit is contained in:
parent
816085a652
commit
ce1629b70a
3 changed files with 8 additions and 1 deletions
|
@ -525,6 +525,8 @@ The shortlist of configuration flags is the following:
|
||||||
Optional bearer auth token to use for -datasource.url.
|
Optional bearer auth token to use for -datasource.url.
|
||||||
-datasource.bearerTokenFile string
|
-datasource.bearerTokenFile string
|
||||||
Optional path to bearer token file to use for -datasource.url.
|
Optional path to bearer token file to use for -datasource.url.
|
||||||
|
-datasource.disableKeepAlive
|
||||||
|
Whether to disable long-lived connections to the datasource. If true, disables HTTP keep-alives and will only use the connection to the server for a single HTTP request.
|
||||||
-datasource.lookback duration
|
-datasource.lookback duration
|
||||||
Lookback defines how far into the past to look when evaluating queries. For example, if the datasource.lookback=5m then param "time" with value now()-5m will be added to every query.
|
Lookback defines how far into the past to look when evaluating queries. For example, if the datasource.lookback=5m then param "time" with value now()-5m will be added to every query.
|
||||||
-datasource.maxIdleConnections int
|
-datasource.maxIdleConnections int
|
||||||
|
|
|
@ -41,7 +41,9 @@ var (
|
||||||
queryTimeAlignment = flag.Bool("datasource.queryTimeAlignment", true, `Whether to align "time" parameter with evaluation interval.`+
|
queryTimeAlignment = flag.Bool("datasource.queryTimeAlignment", true, `Whether to align "time" parameter with evaluation interval.`+
|
||||||
"Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257")
|
"Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257")
|
||||||
maxIdleConnections = flag.Int("datasource.maxIdleConnections", 100, `Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state.`)
|
maxIdleConnections = flag.Int("datasource.maxIdleConnections", 100, `Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state.`)
|
||||||
roundDigits = flag.Int("datasource.roundDigits", 0, `Adds "round_digits" GET param to datasource requests. `+
|
disableKeepAlive = flag.Bool("datasource.disableKeepAlive", false, `Whether to disable long-lived connections to the datasource. `+
|
||||||
|
`If true, disables HTTP keep-alives and will only use the connection to the server for a single HTTP request.`)
|
||||||
|
roundDigits = flag.Int("datasource.roundDigits", 0, `Adds "round_digits" GET param to datasource requests. `+
|
||||||
`In VM "round_digits" limits the number of digits after the decimal point in response values.`)
|
`In VM "round_digits" limits the number of digits after the decimal point in response values.`)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -62,6 +64,7 @@ func Init(extraParams url.Values) (QuerierBuilder, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to create transport: %w", err)
|
return nil, fmt.Errorf("failed to create transport: %w", err)
|
||||||
}
|
}
|
||||||
|
tr.DisableKeepAlives = *disableKeepAlive
|
||||||
tr.MaxIdleConnsPerHost = *maxIdleConnections
|
tr.MaxIdleConnsPerHost = *maxIdleConnections
|
||||||
if tr.MaxIdleConns != 0 && tr.MaxIdleConns < tr.MaxIdleConnsPerHost {
|
if tr.MaxIdleConns != 0 && tr.MaxIdleConns < tr.MaxIdleConnsPerHost {
|
||||||
tr.MaxIdleConns = tr.MaxIdleConnsPerHost
|
tr.MaxIdleConns = tr.MaxIdleConnsPerHost
|
||||||
|
|
|
@ -529,6 +529,8 @@ The shortlist of configuration flags is the following:
|
||||||
Optional bearer auth token to use for -datasource.url.
|
Optional bearer auth token to use for -datasource.url.
|
||||||
-datasource.bearerTokenFile string
|
-datasource.bearerTokenFile string
|
||||||
Optional path to bearer token file to use for -datasource.url.
|
Optional path to bearer token file to use for -datasource.url.
|
||||||
|
-datasource.disableKeepAlive
|
||||||
|
Whether to disable long-lived connections to the datasource. If true, disables HTTP keep-alives and will only use the connection to the server for a single HTTP request.
|
||||||
-datasource.lookback duration
|
-datasource.lookback duration
|
||||||
Lookback defines how far into the past to look when evaluating queries. For example, if the datasource.lookback=5m then param "time" with value now()-5m will be added to every query.
|
Lookback defines how far into the past to look when evaluating queries. For example, if the datasource.lookback=5m then param "time" with value now()-5m will be added to every query.
|
||||||
-datasource.maxIdleConnections int
|
-datasource.maxIdleConnections int
|
||||||
|
|
Loading…
Reference in a new issue