mirror of
https://github.com/prometheus/prometheus.git
synced 2025-02-21 03:16:00 -08:00
removeLabels needs a pointer to work. (#3326)
This commit is contained in:
parent
45f9f3c539
commit
4a50f547c8
|
@ -78,7 +78,7 @@ func (q *querier) Select(matchers ...*labels.Matcher) storage.SeriesSet {
|
||||||
series := make([]storage.Series, 0, len(res))
|
series := make([]storage.Series, 0, len(res))
|
||||||
for _, ts := range res {
|
for _, ts := range res {
|
||||||
labels := labelPairsToLabels(ts.Labels)
|
labels := labelPairsToLabels(ts.Labels)
|
||||||
removeLabels(labels, added)
|
removeLabels(&labels, added)
|
||||||
series = append(series, &concreteSeries{
|
series = append(series, &concreteSeries{
|
||||||
labels: labels,
|
labels: labels,
|
||||||
samples: ts.Samples,
|
samples: ts.Samples,
|
||||||
|
@ -254,10 +254,10 @@ func (q *querier) addExternalLabels(matchers []*labels.Matcher) ([]*labels.Match
|
||||||
return matchers, el
|
return matchers, el
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeLabels(l labels.Labels, toDelete model.LabelSet) {
|
func removeLabels(l *labels.Labels, toDelete model.LabelSet) {
|
||||||
for i := 0; i < len(l); {
|
for i := 0; i < len(*l); {
|
||||||
if _, ok := toDelete[model.LabelName(l[i].Name)]; ok {
|
if _, ok := toDelete[model.LabelName((*l)[i].Name)]; ok {
|
||||||
l = l[:i+copy(l[i:], l[i+1:])]
|
*l = (*l)[:i+copy((*l)[i:], (*l)[i+1:])]
|
||||||
} else {
|
} else {
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,6 +97,29 @@ func TestAddExternalLabels(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRemoveLabels(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
in labels.Labels
|
||||||
|
out labels.Labels
|
||||||
|
toRemove model.LabelSet
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
toRemove: model.LabelSet{"foo": "bar"},
|
||||||
|
in: labels.FromStrings("foo", "bar", "a", "b"),
|
||||||
|
out: labels.FromStrings("a", "b"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, test := range tests {
|
||||||
|
in := test.in.Copy()
|
||||||
|
removeLabels(&in, test.toRemove)
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(in, test.out) {
|
||||||
|
t.Fatalf("%d. unexpected labels; want %v, got %v", i, test.out, in)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestConcreteSeriesSet(t *testing.T) {
|
func TestConcreteSeriesSet(t *testing.T) {
|
||||||
series1 := &concreteSeries{
|
series1 := &concreteSeries{
|
||||||
labels: labels.FromStrings("foo", "bar"),
|
labels: labels.FromStrings("foo", "bar"),
|
||||||
|
|
Loading…
Reference in a new issue