Skip to content

Commit d62f27f

Browse files
committed
Remove now-obsolete MergeSeriesIterator
1 parent 9a5771b commit d62f27f

File tree

2 files changed

+2
-182
lines changed

2 files changed

+2
-182
lines changed

pkg/util/iterator.go

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,61 +4,9 @@ import (
44
"sort"
55

66
"github.com/prometheus/common/model"
7-
"github.com/prometheus/prometheus/storage/local"
8-
"github.com/prometheus/prometheus/storage/metric"
7+
"github.com/weaveworks/cortex/pkg/prom1/storage/metric"
98
)
109

11-
// MergeSeriesIterator combines SampleStreamIterator. Based off mergeIterator
12-
// implemented in promtheus/storage/fanin/fanin.go.
13-
type MergeSeriesIterator struct {
14-
iterators []local.SeriesIterator
15-
}
16-
17-
// NewMergeSeriesIterator creates a mergeSeriesIterator
18-
func NewMergeSeriesIterator(iterators []local.SeriesIterator) MergeSeriesIterator {
19-
return MergeSeriesIterator{
20-
iterators: iterators,
21-
}
22-
}
23-
24-
// Metric implements the SeriesIterator interface.
25-
func (msit MergeSeriesIterator) Metric() metric.Metric {
26-
return metric.Metric{Metric: msit.iterators[0].Metric().Metric}
27-
}
28-
29-
// ValueAtOrBeforeTime implements the SeriesIterator interface.
30-
func (msit MergeSeriesIterator) ValueAtOrBeforeTime(ts model.Time) model.SamplePair {
31-
latest := model.ZeroSamplePair
32-
for _, it := range msit.iterators {
33-
v := it.ValueAtOrBeforeTime(ts)
34-
if v.Timestamp.After(latest.Timestamp) {
35-
latest = v
36-
}
37-
}
38-
return latest
39-
}
40-
41-
// RangeValues implements the SeriesIterator interface.
42-
func (msit MergeSeriesIterator) RangeValues(in metric.Interval) []model.SamplePair {
43-
var sampleSets [][]model.SamplePair
44-
for _, it := range msit.iterators {
45-
sampleSets = append(sampleSets, it.RangeValues(in))
46-
}
47-
48-
samples := MergeNSampleSets(sampleSets...)
49-
if len(samples) == 0 {
50-
return nil
51-
}
52-
return samples
53-
}
54-
55-
// Close implements the SeriesIterator interface.
56-
func (msit MergeSeriesIterator) Close() {
57-
for _, it := range msit.iterators {
58-
it.Close()
59-
}
60-
}
61-
6210
// SampleStreamIterator is a struct and not just a renamed type because otherwise the Metric
6311
// field and Metric() methods would clash.
6412
type SampleStreamIterator struct {

pkg/util/iterator_test.go

Lines changed: 1 addition & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -5,138 +5,10 @@ import (
55
"time"
66

77
"github.com/prometheus/common/model"
8-
"github.com/prometheus/prometheus/storage/local"
9-
"github.com/prometheus/prometheus/storage/metric"
108
"github.com/stretchr/testify/require"
9+
"github.com/weaveworks/cortex/pkg/prom1/storage/metric"
1110
)
1211

13-
func TestMergeSeriesIterator_Metric(t *testing.T) {
14-
sampleMetric := model.Metric{model.MetricNameLabel: "foo"}
15-
iterator1 := NewSampleStreamIterator(&model.SampleStream{
16-
Metric: sampleMetric,
17-
Values: []model.SamplePair{},
18-
})
19-
iterator2 := NewSampleStreamIterator(&model.SampleStream{
20-
Metric: sampleMetric,
21-
Values: []model.SamplePair{},
22-
})
23-
24-
mergeIterator := NewMergeSeriesIterator([]local.SeriesIterator{iterator1, iterator2})
25-
26-
for _, c := range []struct {
27-
mergeIterator MergeSeriesIterator
28-
expectedMetric metric.Metric
29-
}{
30-
{
31-
mergeIterator: mergeIterator,
32-
expectedMetric: metric.Metric{Metric: sampleMetric},
33-
},
34-
} {
35-
metric := c.mergeIterator.Metric()
36-
require.Equal(t, c.expectedMetric, metric)
37-
}
38-
}
39-
40-
func TestMergeSeriesIterator_ValueAtOrBeforeTime(t *testing.T) {
41-
now := model.Now()
42-
sample1 := model.SamplePair{Timestamp: now, Value: 1}
43-
sample2 := model.SamplePair{Timestamp: now.Add(1 * time.Second), Value: 2}
44-
sample3 := model.SamplePair{Timestamp: now.Add(4 * time.Second), Value: 3}
45-
sample4 := model.SamplePair{Timestamp: now.Add(8 * time.Second), Value: 7}
46-
47-
sampleMetric := model.Metric{model.MetricNameLabel: "foo"}
48-
iterator1 := NewSampleStreamIterator(&model.SampleStream{
49-
Metric: sampleMetric,
50-
Values: []model.SamplePair{sample1, sample2, sample3},
51-
})
52-
iterator2 := NewSampleStreamIterator(&model.SampleStream{
53-
Metric: sampleMetric,
54-
Values: []model.SamplePair{sample2, sample4},
55-
})
56-
57-
mergeIterator := NewMergeSeriesIterator([]local.SeriesIterator{iterator1, iterator2})
58-
59-
for _, c := range []struct {
60-
mergeIterator MergeSeriesIterator
61-
timestamp model.Time
62-
expectedSample model.SamplePair
63-
}{
64-
{
65-
mergeIterator: mergeIterator,
66-
timestamp: now,
67-
expectedSample: sample1,
68-
},
69-
{
70-
mergeIterator: mergeIterator,
71-
timestamp: now.Add(1 * time.Second),
72-
expectedSample: sample2,
73-
},
74-
{
75-
mergeIterator: mergeIterator,
76-
timestamp: now.Add(5 * time.Second),
77-
expectedSample: sample3,
78-
},
79-
{
80-
mergeIterator: mergeIterator,
81-
timestamp: now.Add(9 * time.Second),
82-
expectedSample: sample4,
83-
},
84-
} {
85-
sample := c.mergeIterator.ValueAtOrBeforeTime(c.timestamp)
86-
require.Equal(t, c.expectedSample, sample)
87-
}
88-
}
89-
90-
func TestMergeSeriesIterator_RangeValues(t *testing.T) {
91-
now := model.Now()
92-
sample1 := model.SamplePair{Timestamp: now, Value: 1}
93-
sample2 := model.SamplePair{Timestamp: now.Add(1 * time.Second), Value: 2}
94-
sample3 := model.SamplePair{Timestamp: now.Add(4 * time.Second), Value: 3}
95-
sample4 := model.SamplePair{Timestamp: now.Add(8 * time.Second), Value: 7}
96-
97-
sampleMetric := model.Metric{model.MetricNameLabel: "foo"}
98-
iterator1 := NewSampleStreamIterator(&model.SampleStream{
99-
Metric: sampleMetric,
100-
Values: []model.SamplePair{sample1, sample2, sample3},
101-
})
102-
iterator2 := NewSampleStreamIterator(&model.SampleStream{
103-
Metric: sampleMetric,
104-
Values: []model.SamplePair{sample2, sample4},
105-
})
106-
107-
mergeIterator := NewMergeSeriesIterator([]local.SeriesIterator{iterator1, iterator2})
108-
109-
for _, c := range []struct {
110-
mergeIterator MergeSeriesIterator
111-
interval metric.Interval
112-
expectedSamples []model.SamplePair
113-
}{
114-
{
115-
mergeIterator: mergeIterator,
116-
interval: metric.Interval{OldestInclusive: now, NewestInclusive: now},
117-
expectedSamples: []model.SamplePair{sample1},
118-
},
119-
{
120-
mergeIterator: mergeIterator,
121-
interval: metric.Interval{OldestInclusive: now.Add(1 * time.Second), NewestInclusive: now.Add(6 * time.Second)},
122-
expectedSamples: []model.SamplePair{sample2, sample3},
123-
},
124-
{
125-
mergeIterator: mergeIterator,
126-
interval: metric.Interval{OldestInclusive: now.Add(1 * time.Second), NewestInclusive: now.Add(8 * time.Second)},
127-
expectedSamples: []model.SamplePair{sample2, sample3, sample4},
128-
},
129-
{
130-
mergeIterator: mergeIterator,
131-
interval: metric.Interval{OldestInclusive: now.Add(9 * time.Second), NewestInclusive: now.Add(9 * time.Second)},
132-
expectedSamples: nil,
133-
},
134-
} {
135-
samples := c.mergeIterator.RangeValues(c.interval)
136-
require.Equal(t, c.expectedSamples, samples)
137-
}
138-
}
139-
14012
func TestSampleStreamIterator_Metric(t *testing.T) {
14113
sampleMetric := model.Metric{model.MetricNameLabel: "foo"}
14214
iterator := NewSampleStreamIterator(&model.SampleStream{

0 commit comments

Comments
 (0)