Skip to content

Commit 3985789

Browse files
authored
Add user agent header to outgoing HTTP requests (#129)
1 parent 1d95862 commit 3985789

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

cmd/geras/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929

3030
"github.com/G-Research/geras/pkg/store"
3131
"github.com/G-Research/geras/pkg/tracing"
32+
"github.com/G-Research/geras/pkg/useragent"
3233
"github.com/G-Research/opentsdb-goclient/config"
3334

3435
_ "net/http/pprof"
@@ -174,12 +175,15 @@ func main() {
174175
os.Exit(1)
175176
}
176177

178+
// Set user agent header
179+
var transport http.RoundTripper = opentsdb.DefaultTransport
180+
transport = useragent.NewUserAgentTransport(transport, "geras/" + version.Version)
181+
177182
// initialize distributed tracing
178183
flush := initTracer()
179184
defer flush()
180185

181186
// initialize tracing
182-
var transport http.RoundTripper = opentsdb.DefaultTransport
183187
if *traceEnabled {
184188
transport = TracedTransport{
185189
originalTransport: transport,

pkg/useragent/useragent.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package useragent
2+
3+
import (
4+
"net/http"
5+
)
6+
7+
type UserAgentTransport struct {
8+
base http.RoundTripper
9+
customUA string
10+
}
11+
12+
func NewUserAgentTransport(base http.RoundTripper, customUA string) *UserAgentTransport {
13+
return &UserAgentTransport{
14+
base: base,
15+
customUA: customUA,
16+
}
17+
}
18+
19+
func (t *UserAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) {
20+
defaultUA := req.Header.Get("User-Agent")
21+
if defaultUA != "" {
22+
req.Header.Set("User-Agent", defaultUA+" "+t.customUA)
23+
} else {
24+
req.Header.Set("User-Agent", t.customUA)
25+
}
26+
return t.base.RoundTrip(req)
27+
}

0 commit comments

Comments
 (0)