adds leading forward slash check for scrapeURL path (#855)

* fixes in-consistency with prometheus behaviour for scrape targets url path.
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/835
This commit is contained in:
Nikolay 2020-10-29 08:39:42 +03:00 committed by Aliaksandr Valialkin
parent 40172c0721
commit 058f49de57
2 changed files with 42 additions and 0 deletions

View file

@ -669,6 +669,9 @@ func appendScrapeWork(dst []ScrapeWork, swc *scrapeWorkConfig, target string, ex
if metricsPathRelabeled == "" { if metricsPathRelabeled == "" {
metricsPathRelabeled = "/metrics" metricsPathRelabeled = "/metrics"
} }
if !strings.HasPrefix(metricsPathRelabeled, "/") {
metricsPathRelabeled = "/" + metricsPathRelabeled
}
paramsRelabeled := getParamsFromLabels(labels, swc.params) paramsRelabeled := getParamsFromLabels(labels, swc.params)
optionalQuestion := "?" optionalQuestion := "?"
if len(paramsRelabeled) == 0 || strings.Contains(metricsPathRelabeled, "?") { if len(paramsRelabeled) == 0 || strings.Contains(metricsPathRelabeled, "?") {

View file

@ -1333,6 +1333,45 @@ scrape_configs:
jobNameOriginal: "snmp", jobNameOriginal: "snmp",
}, },
}) })
f(`
scrape_configs:
- job_name: path wo slash
static_configs:
- targets: ["foo.bar:1234"]
relabel_configs:
- replacement: metricspath
target_label: __metrics_path__
`, []ScrapeWork{
{
ScrapeURL: "http://foo.bar:1234/metricspath",
ScrapeInterval: defaultScrapeInterval,
ScrapeTimeout: defaultScrapeTimeout,
Labels: []prompbmarshal.Label{
{
Name: "__address__",
Value: "foo.bar:1234",
},
{
Name: "__metrics_path__",
Value: "metricspath",
},
{
Name: "__scheme__",
Value: "http",
},
{
Name: "instance",
Value: "foo.bar:1234",
},
{
Name: "job",
Value: "path wo slash",
},
},
jobNameOriginal: "path wo slash",
AuthConfig: &promauth.Config{},
},
})
} }
var defaultRegexForRelabelConfig = regexp.MustCompile("^(.*)$") var defaultRegexForRelabelConfig = regexp.MustCompile("^(.*)$")