diff --git a/cmd/ingester/main.go b/cmd/ingester/main.go index 7ec28261fe2..992dbc3bb94 100644 --- a/cmd/ingester/main.go +++ b/cmd/ingester/main.go @@ -32,16 +32,22 @@ func main() { storageConfig storage.Config ingesterConfig ingester.Config logLevel util.LogLevel + maxStreams uint ) // Ingester needs to know our gRPC listen port. ingesterConfig.ListenPort = &serverConfig.GRPCListenPort util.RegisterFlags(&serverConfig, &chunkStoreConfig, &storageConfig, &schemaConfig, &ingesterConfig, &logLevel) + flag.UintVar(&maxStreams, "ingester.max-concurrent-streams", 1000, "Limit on the number of concurrent streams for gRPC calls (0 = unlimited)") flag.Parse() schemaConfig.MaxChunkAge = ingesterConfig.MaxChunkAge util.InitLogger(logLevel.AllowedLevel) + if maxStreams > 0 { + serverConfig.GRPCOptions = append(serverConfig.GRPCOptions, grpc.MaxConcurrentStreams(uint32(maxStreams))) + } + server, err := server.New(serverConfig) if err != nil { level.Error(util.Logger).Log("msg", "error initializing server", "err", err)