Commit 13921902 by Marcus Efraimsson

Set User-Agent header in all proxied datasource requests

Header value will be Grafana/%version%, i.e. Grafana/5.3.0
parent 4f704cec
...@@ -203,7 +203,7 @@ func (proxy *DataSourceProxy) getDirector() func(req *http.Request) { ...@@ -203,7 +203,7 @@ func (proxy *DataSourceProxy) getDirector() func(req *http.Request) {
req.Header.Del("X-Forwarded-Host") req.Header.Del("X-Forwarded-Host")
req.Header.Del("X-Forwarded-Port") req.Header.Del("X-Forwarded-Port")
req.Header.Del("X-Forwarded-Proto") req.Header.Del("X-Forwarded-Proto")
req.Header.Set("User-Agent", fmt.Sprintf("Grafana/%s Proxied-DS-Request %s", setting.BuildVersion, proxy.ds.Type)) req.Header.Set("User-Agent", fmt.Sprintf("Grafana/%s", setting.BuildVersion))
// set X-Forwarded-For header // set X-Forwarded-For header
if req.RemoteAddr != "" { if req.RemoteAddr != "" {
......
...@@ -212,20 +212,21 @@ func TestDSRouteRule(t *testing.T) { ...@@ -212,20 +212,21 @@ func TestDSRouteRule(t *testing.T) {
}) })
Convey("When proxying graphite", func() { Convey("When proxying graphite", func() {
setting.BuildVersion = "5.3.0"
plugin := &plugins.DataSourcePlugin{} plugin := &plugins.DataSourcePlugin{}
ds := &m.DataSource{Url: "htttp://graphite:8080", Type: m.DS_GRAPHITE} ds := &m.DataSource{Url: "htttp://graphite:8080", Type: m.DS_GRAPHITE}
ctx := &m.ReqContext{} ctx := &m.ReqContext{}
proxy := NewDataSourceProxy(ds, plugin, ctx, "/render") proxy := NewDataSourceProxy(ds, plugin, ctx, "/render")
req, err := http.NewRequest(http.MethodGet, "http://grafana.com/sub", nil)
So(err, ShouldBeNil)
requestURL, _ := url.Parse("http://grafana.com/sub") proxy.getDirector()(req)
req := http.Request{URL: requestURL, Header: http.Header{}}
proxy.getDirector()(&req)
Convey("Can translate request url and path", func() { Convey("Can translate request url and path", func() {
So(req.URL.Host, ShouldEqual, "graphite:8080") So(req.URL.Host, ShouldEqual, "graphite:8080")
So(req.URL.Path, ShouldEqual, "/render") So(req.URL.Path, ShouldEqual, "/render")
So(req.Header.Get("User-Agent"), ShouldEqual, "Grafana/5.3.0")
}) })
}) })
...@@ -243,10 +244,10 @@ func TestDSRouteRule(t *testing.T) { ...@@ -243,10 +244,10 @@ func TestDSRouteRule(t *testing.T) {
ctx := &m.ReqContext{} ctx := &m.ReqContext{}
proxy := NewDataSourceProxy(ds, plugin, ctx, "") proxy := NewDataSourceProxy(ds, plugin, ctx, "")
requestURL, _ := url.Parse("http://grafana.com/sub") req, err := http.NewRequest(http.MethodGet, "http://grafana.com/sub", nil)
req := http.Request{URL: requestURL, Header: http.Header{}} So(err, ShouldBeNil)
proxy.getDirector()(&req) proxy.getDirector()(req)
Convey("Should add db to url", func() { Convey("Should add db to url", func() {
So(req.URL.Path, ShouldEqual, "/db/site/") So(req.URL.Path, ShouldEqual, "/db/site/")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment