diff --git a/config/config.go b/config/config.go index 626fd3d1e5..401bee4f4c 100644 --- a/config/config.go +++ b/config/config.go @@ -526,7 +526,7 @@ type HTTPClientConfig struct { ProxyURL URL `yaml:"proxy_url,omitempty"` // TLSConfig to use to connect to the targets. TLSConfig TLSConfig `yaml:"tls_config,omitempty"` - // If set, override whether to use HTTP KeepAlive - defaults OFF + // If set, override whether to use HTTP KeepAlive - scraping defaults OFF, remote read/write defaults ON KeepAlive *bool `yaml:"keep_alive,omitempty"` // Catches all undefined fields and must be empty after parsing. diff --git a/storage/remote/client.go b/storage/remote/client.go index fc60cfba68..1a20dc43a1 100644 --- a/storage/remote/client.go +++ b/storage/remote/client.go @@ -51,6 +51,11 @@ type clientConfig struct { // NewClient creates a new Client. func NewClient(index int, conf *clientConfig) (*Client, error) { + // If not specified in config, allow HTTP connections for remote API to use keep-alive + if conf.httpClientConfig.KeepAlive == nil { + val := true + conf.httpClientConfig.KeepAlive = &val + } httpClient, err := httputil.NewClientFromConfig(conf.httpClientConfig) if err != nil { return nil, err