From 305e88c8d6fcd6d78853a5d5c68ef8f7398a389b Mon Sep 17 00:00:00 2001 From: nikosmonaut Date: Thu, 12 Dec 2019 13:01:15 +0100 Subject: [PATCH 1/2] Change default user agent According to prometheus scrape behavior. Change default go http client user-agent from "Go-http-client/1.1" to "{{ project_name }}/{{ version }}" Signed-off-by: nikosmonaut --- prober/http.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/prober/http.go b/prober/http.go index f4abdbe1..8df0d221 100644 --- a/prober/http.go +++ b/prober/http.go @@ -35,6 +35,7 @@ import ( "github.com/go-kit/kit/log/level" "github.com/prometheus/client_golang/prometheus" pconfig "github.com/prometheus/common/config" + "github.com/prometheus/common/version" "golang.org/x/net/publicsuffix" "github.com/prometheus/blackbox_exporter/config" @@ -226,6 +227,8 @@ func (t *transport) GotFirstResponseByte() { t.current.responseStart = time.Now() } +var userAgentDefaultHeader = fmt.Sprintf("BlackBox Exporter/%s", version.Version) + func ProbeHTTP(ctx context.Context, target string, module config.Module, registry *prometheus.Registry, logger log.Logger) (success bool) { var redirects int var ( @@ -403,6 +406,10 @@ func ProbeHTTP(ctx context.Context, target string, module config.Module, registr request.Header.Set(key, value) } + if request.Header.Get("User-Agent") == "" { + request.Header.Set("User-Agent", userAgentDefaultHeader) + } + trace := &httptrace.ClientTrace{ DNSStart: tt.DNSStart, DNSDone: tt.DNSDone, From 36b2245fac212d87d286b99d5a62f0d824c341f9 Mon Sep 17 00:00:00 2001 From: nikosmonaut Date: Thu, 12 Dec 2019 16:33:37 +0100 Subject: [PATCH 2/2] Handle empty User-Agent param Signed-off-by: nikosmonaut --- prober/http.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/prober/http.go b/prober/http.go index 8df0d221..555a10a0 100644 --- a/prober/http.go +++ b/prober/http.go @@ -227,7 +227,7 @@ func (t *transport) GotFirstResponseByte() { t.current.responseStart = time.Now() } -var userAgentDefaultHeader = fmt.Sprintf("BlackBox Exporter/%s", version.Version) +var userAgentDefaultHeader = fmt.Sprintf("Blackbox Exporter/%s", version.Version) func ProbeHTTP(ctx context.Context, target string, module config.Module, registry *prometheus.Registry, logger log.Logger) (success bool) { var redirects int @@ -406,7 +406,8 @@ func ProbeHTTP(ctx context.Context, target string, module config.Module, registr request.Header.Set(key, value) } - if request.Header.Get("User-Agent") == "" { + _, hasUserAgent := request.Header["User-Agent"] + if !hasUserAgent { request.Header.Set("User-Agent", userAgentDefaultHeader) }