mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 00:13:30 +01:00
app/vmagent: apply sane limits to -remoteWrite.queues
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/707
This commit is contained in:
parent
49140edd41
commit
3b1ecac04b
@ -3,6 +3,7 @@ package remotewrite
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
@ -41,6 +42,10 @@ var rwctxs []*remoteWriteCtx
|
|||||||
// Contains the current relabelConfigs.
|
// Contains the current relabelConfigs.
|
||||||
var allRelabelConfigs atomic.Value
|
var allRelabelConfigs atomic.Value
|
||||||
|
|
||||||
|
// maxQueues limits the maximum value for `-remoteWrite.queues`. There is no sense in setting too high value,
|
||||||
|
// since it may lead to high memory usage due to big number of buffers.
|
||||||
|
var maxQueues = runtime.GOMAXPROCS(-1) * 4
|
||||||
|
|
||||||
// Init initializes remotewrite.
|
// Init initializes remotewrite.
|
||||||
//
|
//
|
||||||
// It must be called after flag.Parse().
|
// It must be called after flag.Parse().
|
||||||
@ -48,9 +53,14 @@ var allRelabelConfigs atomic.Value
|
|||||||
// Stop must be called for graceful shutdown.
|
// Stop must be called for graceful shutdown.
|
||||||
func Init() {
|
func Init() {
|
||||||
if len(*remoteWriteURLs) == 0 {
|
if len(*remoteWriteURLs) == 0 {
|
||||||
logger.Fatalf("at least one `-remoteWrite.url` must be set")
|
logger.Fatalf("at least one `-remoteWrite.url` command-line flag must be set")
|
||||||
|
}
|
||||||
|
if *queues > maxQueues {
|
||||||
|
*queues = maxQueues
|
||||||
|
}
|
||||||
|
if *queues <= 0 {
|
||||||
|
*queues = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if !*showRemoteWriteURL {
|
if !*showRemoteWriteURL {
|
||||||
// remoteWrite.url can contain authentication codes, so hide it at `/metrics` output.
|
// remoteWrite.url can contain authentication codes, so hide it at `/metrics` output.
|
||||||
httpserver.RegisterSecretFlag("remoteWrite.url")
|
httpserver.RegisterSecretFlag("remoteWrite.url")
|
||||||
|
Loading…
Reference in New Issue
Block a user