From 9516d044723d60a1513502bb297b970f2c661ff9 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Wed, 9 Aug 2017 16:30:49 +0200 Subject: [PATCH] util: Add idle timeout for scrape connections --- retrieval/scrape.go | 1 + util/httputil/client.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/retrieval/scrape.go b/retrieval/scrape.go index db4e02f27..16ca5ecf7 100644 --- a/retrieval/scrape.go +++ b/retrieval/scrape.go @@ -420,6 +420,7 @@ func (s *targetScraper) scrape(ctx context.Context, w io.Writer) error { s.req = req } + resp, err := ctxhttp.Do(ctx, s.client, s.req) if err != nil { return err diff --git a/util/httputil/client.go b/util/httputil/client.go index 2c01fd0fd..a79bdd20f 100644 --- a/util/httputil/client.go +++ b/util/httputil/client.go @@ -47,6 +47,9 @@ func NewClientFromConfig(cfg config.HTTPClientConfig) (*http.Client, error) { DisableKeepAlives: false, TLSClientConfig: tlsConfig, DisableCompression: true, + // 5 minutes is typically above the maximum sane scrape interval. So we can + // use keepalive for all configurations. + IdleConnTimeout: 5 * time.Minute, } // If a bearer token is provided, create a round tripper that will set the