diff --git a/plugins/inputs/phpfpm/phpfpm.go b/plugins/inputs/phpfpm/phpfpm.go index f191844a3..52907bb50 100644 --- a/plugins/inputs/phpfpm/phpfpm.go +++ b/plugins/inputs/phpfpm/phpfpm.go @@ -201,7 +201,7 @@ func (p *phpfpm) gatherHttp(addr string, acc telegraf.Accumulator) error { return fmt.Errorf("unable parse server address '%s': %v", addr, err) } - req, err := http.NewRequest("GET", fmt.Sprintf("%s://%s%s", u.Scheme, u.Host, u.Path), nil) + req, err := http.NewRequest("GET", u.String(), nil) if err != nil { return fmt.Errorf("unable to create new request '%s': %v", addr, err) } diff --git a/plugins/inputs/phpfpm/phpfpm_test.go b/plugins/inputs/phpfpm/phpfpm_test.go index f3b72a828..7be2e6a27 100644 --- a/plugins/inputs/phpfpm/phpfpm_test.go +++ b/plugins/inputs/phpfpm/phpfpm_test.go @@ -25,12 +25,17 @@ func (s statServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { } func TestPhpFpmGeneratesMetrics_From_Http(t *testing.T) { - sv := statServer{} - ts := httptest.NewServer(sv) + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + require.Equal(t, "ok", r.URL.Query().Get("test")) + w.Header().Set("Content-Type", "text/plain") + w.Header().Set("Content-Length", fmt.Sprint(len(outputSample))) + fmt.Fprint(w, outputSample) + })) defer ts.Close() + url := ts.URL + "?test=ok" r := &phpfpm{ - Urls: []string{ts.URL}, + Urls: []string{url}, } err := r.Init() @@ -43,7 +48,7 @@ func TestPhpFpmGeneratesMetrics_From_Http(t *testing.T) { tags := map[string]string{ "pool": "www", - "url": ts.URL, + "url": url, } fields := map[string]interface{}{