Skip to content

Commit 31bed53

Browse files
authored
Merge pull request #133 from prometheus/fish-http-config-expose-keepalive
Expose DisableKeepAlives in HTTPClientConfig
2 parents d9a1ac5 + 0de8e43 commit 31bed53

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

config/http_config.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ func newClient(rt http.RoundTripper) *http.Client {
122122

123123
// NewClientFromConfig returns a new HTTP client configured for the
124124
// given config.HTTPClientConfig. The name is used as go-conntrack metric label.
125-
func NewClientFromConfig(cfg HTTPClientConfig, name string) (*http.Client, error) {
126-
rt, err := NewRoundTripperFromConfig(cfg, name)
125+
func NewClientFromConfig(cfg HTTPClientConfig, name string, disableKeepAlives bool) (*http.Client, error) {
126+
rt, err := NewRoundTripperFromConfig(cfg, name, disableKeepAlives)
127127
if err != nil {
128128
return nil, err
129129
}
@@ -132,15 +132,15 @@ func NewClientFromConfig(cfg HTTPClientConfig, name string) (*http.Client, error
132132

133133
// NewRoundTripperFromConfig returns a new HTTP RoundTripper configured for the
134134
// given config.HTTPClientConfig. The name is used as go-conntrack metric label.
135-
func NewRoundTripperFromConfig(cfg HTTPClientConfig, name string) (http.RoundTripper, error) {
135+
func NewRoundTripperFromConfig(cfg HTTPClientConfig, name string, disableKeepAlives bool) (http.RoundTripper, error) {
136136
newRT := func(tlsConfig *tls.Config) (http.RoundTripper, error) {
137137
// The only timeout we care about is the configured scrape timeout.
138138
// It is applied on request. So we leave out any timings here.
139139
var rt http.RoundTripper = &http.Transport{
140140
Proxy: http.ProxyURL(cfg.ProxyURL.URL),
141141
MaxIdleConns: 20000,
142142
MaxIdleConnsPerHost: 1000, // see https://github.com/golang/go/issues/13801
143-
DisableKeepAlives: false,
143+
DisableKeepAlives: disableKeepAlives,
144144
TLSClientConfig: tlsConfig,
145145
DisableCompression: true,
146146
// 5 minutes is typically above the maximum sane scrape interval. So we can

config/http_config_test.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func TestNewClientFromConfig(t *testing.T) {
206206
}
207207
defer testServer.Close()
208208

209-
client, err := NewClientFromConfig(validConfig.clientConfig, "test")
209+
client, err := NewClientFromConfig(validConfig.clientConfig, "test", false)
210210
if err != nil {
211211
t.Errorf("Can't create a client from this config: %+v", validConfig.clientConfig)
212212
continue
@@ -256,7 +256,7 @@ func TestNewClientFromInvalidConfig(t *testing.T) {
256256
}
257257

258258
for _, invalidConfig := range newClientInvalidConfig {
259-
client, err := NewClientFromConfig(invalidConfig.clientConfig, "test")
259+
client, err := NewClientFromConfig(invalidConfig.clientConfig, "test", false)
260260
if client != nil {
261261
t.Errorf("A client instance was returned instead of nil using this config: %+v", invalidConfig.clientConfig)
262262
}
@@ -295,7 +295,7 @@ func TestMissingBearerAuthFile(t *testing.T) {
295295
}
296296
defer testServer.Close()
297297

298-
client, err := NewClientFromConfig(cfg, "test")
298+
client, err := NewClientFromConfig(cfg, "test", false)
299299
if err != nil {
300300
t.Fatal(err)
301301
}
@@ -472,7 +472,7 @@ func TestBasicAuthNoPassword(t *testing.T) {
472472
if err != nil {
473473
t.Fatalf("Error loading HTTP client config: %v", err)
474474
}
475-
client, err := NewClientFromConfig(*cfg, "test")
475+
client, err := NewClientFromConfig(*cfg, "test", false)
476476
if err != nil {
477477
t.Fatalf("Error creating HTTP Client: %v", err)
478478
}
@@ -498,7 +498,7 @@ func TestBasicAuthNoUsername(t *testing.T) {
498498
if err != nil {
499499
t.Fatalf("Error loading HTTP client config: %v", err)
500500
}
501-
client, err := NewClientFromConfig(*cfg, "test")
501+
client, err := NewClientFromConfig(*cfg, "test", false)
502502
if err != nil {
503503
t.Fatalf("Error creating HTTP Client: %v", err)
504504
}
@@ -524,7 +524,7 @@ func TestBasicAuthPasswordFile(t *testing.T) {
524524
if err != nil {
525525
t.Fatalf("Error loading HTTP client config: %v", err)
526526
}
527-
client, err := NewClientFromConfig(*cfg, "test")
527+
client, err := NewClientFromConfig(*cfg, "test", false)
528528
if err != nil {
529529
t.Fatalf("Error creating HTTP Client: %v", err)
530530
}
@@ -675,7 +675,7 @@ func TestTLSRoundTripper(t *testing.T) {
675675
writeCertificate(bs, tc.cert, cert)
676676
writeCertificate(bs, tc.key, key)
677677
if c == nil {
678-
c, err = NewClientFromConfig(cfg, "test")
678+
c, err = NewClientFromConfig(cfg, "test", false)
679679
if err != nil {
680680
t.Fatalf("Error creating HTTP Client: %v", err)
681681
}
@@ -747,7 +747,7 @@ func TestTLSRoundTripperRaces(t *testing.T) {
747747
writeCertificate(bs, TLSCAChainPath, ca)
748748
writeCertificate(bs, ClientCertificatePath, cert)
749749
writeCertificate(bs, ClientKeyNoPassPath, key)
750-
c, err = NewClientFromConfig(cfg, "test")
750+
c, err = NewClientFromConfig(cfg, "test", false)
751751
if err != nil {
752752
t.Fatalf("Error creating HTTP Client: %v", err)
753753
}

expfmt/decode_test.go

-1
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,6 @@ func testDiscriminatorHTTPHeader(t testing.TB) {
371371
var scenarios = []struct {
372372
input map[string]string
373373
output Format
374-
err error
375374
}{
376375
{
377376
input: map[string]string{"Content-Type": `application/vnd.google.protobuf; proto="io.prometheus.client.MetricFamily"; encoding="delimited"`},

0 commit comments

Comments
 (0)