From 99fd06deff75db56fe76d47a108ec4ed9a579c19 Mon Sep 17 00:00:00 2001 From: hagen1778 <roman@victoriametrics.com> Date: Thu, 24 Aug 2023 11:36:42 +0200 Subject: [PATCH] app/vmagent: follow-up after 6788704152395567a2221d8ea8edeb98338e13d3 https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4884 Signed-off-by: hagen1778 <roman@victoriametrics.com> --- docs/CHANGELOG.md | 1 + lib/promscrape/client.go | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 743776de73..9d64e13020 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -26,6 +26,7 @@ The following `tip` changes can be tested by building VictoriaMetrics components * BUGFIX: [vmalert](https://docs.victoriametrics.com/vmalert.html): correctly re-use HTTP request object on `EOF` retries when querying the configured datasource. Previously, there was a small chance that query retry wouldn't succeed. +* BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): consistently set UserAgent header to `vm_promscrape` during scraping with enabled or disabled `promscrape.streamParse`. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4884) for details. ## [v1.93.1](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.93.1) diff --git a/lib/promscrape/client.go b/lib/promscrape/client.go index 06da770767..3cec692dca 100644 --- a/lib/promscrape/client.go +++ b/lib/promscrape/client.go @@ -79,6 +79,8 @@ func concatTwoStrings(x, y string) string { return s } +const scrapeUserAgent = "vm_promscrape" + func newClient(ctx context.Context, sw *ScrapeWork) *client { var u fasthttp.URI u.Update(sw.ScrapeURL) @@ -120,8 +122,9 @@ func newClient(ctx context.Context, sw *ScrapeWork) *client { logger.Fatalf("cannot create dial func: %s", err) } hc := &fasthttp.HostClient{ - Addr: dialAddr, - Name: "vm_promscrape", + Addr: dialAddr, + // Name used in User-Agent request header + Name: scrapeUserAgent, Dial: dialFunc, IsTLS: isTLS, TLSConfig: tlsCfg, @@ -201,8 +204,7 @@ func (c *client) GetStreamReader() (*streamReader, error) { // Set X-Prometheus-Scrape-Timeout-Seconds like Prometheus does, since it is used by some exporters such as PushProx. // See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1179#issuecomment-813117162 req.Header.Set("X-Prometheus-Scrape-Timeout-Seconds", c.scrapeTimeoutSecondsStr) - // Set same useragent as fasthttp.HostClient at c.hc uses for scraping - req.Header.Set("User-Agent", "vm_promscrape") + req.Header.Set("User-Agent", scrapeUserAgent) c.setHeaders(req) c.setProxyHeaders(req) scrapeRequests.Inc()