Skip to content

Commit 88171a5

Browse files
authored
frontend: permit passing a custom http.RoundTripper (#4434)
Allow passing a custom http.RoundTripper in `downstreamRoundTripper` so that it would be possible to pass something else other than `http.DefaultTransport` which is limited to only two idle connections per host. Signed-off-by: Giedrius Statkevičius <[email protected]>
1 parent bcf1561 commit 88171a5

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

pkg/frontend/config.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func InitFrontend(cfg CombinedFrontendConfig, limits v1.Limits, grpcListenPort i
4141
switch {
4242
case cfg.DownstreamURL != "":
4343
// If the user has specified a downstream Prometheus, then we should use that.
44-
rt, err := NewDownstreamRoundTripper(cfg.DownstreamURL)
44+
rt, err := NewDownstreamRoundTripper(cfg.DownstreamURL, http.DefaultTransport)
4545
return rt, nil, nil, err
4646

4747
case cfg.FrontendV2.SchedulerAddress != "":

pkg/frontend/downstream_roundtripper.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ import (
1111
// RoundTripper that forwards requests to downstream URL.
1212
type downstreamRoundTripper struct {
1313
downstreamURL *url.URL
14+
transport http.RoundTripper
1415
}
1516

16-
func NewDownstreamRoundTripper(downstreamURL string) (http.RoundTripper, error) {
17+
func NewDownstreamRoundTripper(downstreamURL string, transport http.RoundTripper) (http.RoundTripper, error) {
1718
u, err := url.Parse(downstreamURL)
1819
if err != nil {
1920
return nil, err
2021
}
2122

22-
return &downstreamRoundTripper{downstreamURL: u}, nil
23+
return &downstreamRoundTripper{downstreamURL: u, transport: transport}, nil
2324
}
2425

2526
func (d downstreamRoundTripper) RoundTrip(r *http.Request) (*http.Response, error) {
@@ -36,5 +37,5 @@ func (d downstreamRoundTripper) RoundTrip(r *http.Request) (*http.Response, erro
3637
r.URL.Host = d.downstreamURL.Host
3738
r.URL.Path = path.Join(d.downstreamURL.Path, r.URL.Path)
3839
r.Host = ""
39-
return http.DefaultTransport.RoundTrip(r)
40+
return d.transport.RoundTrip(r)
4041
}

0 commit comments

Comments
 (0)