Commit be2bcc50 authored by Tobias Guggenmos's avatar Tobias Guggenmos Committed by Julius Volz
Browse files

Fix target metadata API for empty match_targets (#6303)

According to the documentation, the target metadata API accepts it,
if no value for match_target has been provided. This was not the case
in the implementation.

This commit make the API behave as described in the docs.
Signed-off-by: default avatarTobias Guggenmos <>
parent 12d347e4
......@@ -674,9 +674,17 @@ func (api *API) targetMetadata(r *http.Request) apiFuncResult {
matchers, err := promql.ParseMetricSelector(r.FormValue("match_target"))
if err != nil {
return apiFuncResult{nil, &apiError{errorBadData, err}, nil, nil}
matchTarget := r.FormValue("match_target")
var matchers []*labels.Matcher
var err error
if matchTarget != "" {
matchers, err = promql.ParseMetricSelector(matchTarget)
if err != nil {
return apiFuncResult{nil, &apiError{errorBadData, err}, nil, nil}
metric := r.FormValue("metric")
......@@ -688,7 +696,7 @@ func (api *API) targetMetadata(r *http.Request) apiFuncResult {
// Filter targets that don't satisfy the label matchers.
if !matchLabels(t.Labels(), matchers) {
if matchTarget != "" && !matchLabels(t.Labels(), matchers) {
// If no metric is specified, get the full list for the target.
Supports Markdown
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