Skip to content

Commit 6dd77ae

Browse files
committed
feat: refactor metric samples to be it's own endpoint
1 parent 2587657 commit 6dd77ae

35 files changed

+2583
-1474
lines changed

pkg/logproto/extensions.go

+4-14
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,7 @@ func (r *QueryPatternsResponse) UnmarshalJSON(data []byte) error {
161161
var v struct {
162162
Status string `json:"status"`
163163
Data []struct {
164-
Pattern string `json:"pattern,omitempty"`
165-
Labels string `json:"labels,omitempty"`
164+
Pattern string `json:"pattern"`
166165
Samples [][]int64 `json:"samples"`
167166
} `json:"data"`
168167
}
@@ -175,12 +174,7 @@ func (r *QueryPatternsResponse) UnmarshalJSON(data []byte) error {
175174
for _, s := range d.Samples {
176175
samples = append(samples, &PatternSample{Timestamp: model.TimeFromUnix(s[0]), Value: s[1]})
177176
}
178-
179-
if pattern := d.Pattern; pattern != "" {
180-
r.Series = append(r.Series, NewPatternSeriesWithPattern(pattern, samples))
181-
} else if labels := d.Labels; labels != "" {
182-
r.Series = append(r.Series, NewPatternSeriesWithLabels(labels, samples))
183-
}
177+
r.Series = append(r.Series, &PatternSeries{Pattern: d.Pattern, Samples: samples})
184178
}
185179
return nil
186180
}
@@ -195,10 +189,6 @@ func (m *ShardsResponse) Merge(other *ShardsResponse) {
195189
m.Statistics.Merge(other.Statistics)
196190
}
197191

198-
func NewPatternSeriesWithPattern(pattern string, samples []*PatternSample) *PatternSeries {
199-
return &PatternSeries{Identifier: &PatternSeries_Pattern{pattern}, Samples: samples}
200-
}
201-
202-
func NewPatternSeriesWithLabels(labels string, samples []*PatternSample) *PatternSeries {
203-
return &PatternSeries{Identifier: &PatternSeries_Labels{labels}, Samples: samples}
192+
func NewPatternSeries(pattern string, samples []*PatternSample) *PatternSeries {
193+
return &PatternSeries{Pattern: pattern, Samples: samples}
204194
}

pkg/logproto/extensions_test.go

+15-50
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ func TestShard_SpaceFor(t *testing.T) {
4343
}
4444

4545
func TestQueryPatternsResponse_UnmarshalJSON(t *testing.T) {
46-
t.Run("unmarshals patterns", func(t *testing.T) {
47-
mockData := []byte(`{
46+
mockData := []byte(`{
4847
"status": "success",
4948
"data": [
5049
{
@@ -58,54 +57,20 @@ func TestQueryPatternsResponse_UnmarshalJSON(t *testing.T) {
5857
]
5958
}`)
6059

61-
expectedSeries := []*PatternSeries{
62-
NewPatternSeriesWithPattern("foo <*> bar", []*PatternSample{
63-
{Timestamp: model.TimeFromUnix(1609459200), Value: 10},
64-
{Timestamp: model.TimeFromUnix(1609545600), Value: 15},
65-
}),
66-
NewPatternSeriesWithPattern("foo <*> buzz", []*PatternSample{
67-
{Timestamp: model.TimeFromUnix(1609459200), Value: 20},
68-
{Timestamp: model.TimeFromUnix(1609545600), Value: 25},
69-
}),
70-
}
71-
72-
r := &QueryPatternsResponse{}
73-
err := r.UnmarshalJSON(mockData)
74-
75-
require.Nil(t, err)
76-
require.Equal(t, expectedSeries, r.Series)
77-
})
78-
79-
t.Run("unmarshals labels", func(t *testing.T) {
80-
mockData := []byte(`{
81-
"status": "success",
82-
"data": [
83-
{
84-
"labels": "{foo=\"bar\"}",
85-
"samples": [[1609459200, 10], [1609545600, 15]]
86-
},
87-
{
88-
"labels": "{foo=\"buzz\"}",
89-
"samples": [[1609459200, 20], [1609545600, 25]]
90-
}
91-
]
92-
}`)
93-
94-
expectedSeries := []*PatternSeries{
95-
NewPatternSeriesWithLabels(`{foo="bar"}`, []*PatternSample{
96-
{Timestamp: model.TimeFromUnix(1609459200), Value: 10},
97-
{Timestamp: model.TimeFromUnix(1609545600), Value: 15},
98-
}),
99-
NewPatternSeriesWithLabels(`{foo="buzz"}`, []*PatternSample{
100-
{Timestamp: model.TimeFromUnix(1609459200), Value: 20},
101-
{Timestamp: model.TimeFromUnix(1609545600), Value: 25},
102-
}),
103-
}
60+
expectedSeries := []*PatternSeries{
61+
NewPatternSeries("foo <*> bar", []*PatternSample{
62+
{Timestamp: model.TimeFromUnix(1609459200), Value: 10},
63+
{Timestamp: model.TimeFromUnix(1609545600), Value: 15},
64+
}),
65+
NewPatternSeries("foo <*> buzz", []*PatternSample{
66+
{Timestamp: model.TimeFromUnix(1609459200), Value: 20},
67+
{Timestamp: model.TimeFromUnix(1609545600), Value: 25},
68+
}),
69+
}
10470

105-
r := &QueryPatternsResponse{}
106-
err := r.UnmarshalJSON(mockData)
71+
r := &QueryPatternsResponse{}
72+
err := r.UnmarshalJSON(mockData)
10773

108-
require.Nil(t, err)
109-
require.Equal(t, expectedSeries, r.Series)
110-
})
74+
require.Nil(t, err)
75+
require.Equal(t, expectedSeries, r.Series)
11176
}

0 commit comments

Comments
 (0)