4
4
package integration
5
5
6
6
import (
7
+ "math/rand"
7
8
"testing"
8
9
"time"
9
10
10
11
"github.com/prometheus/common/model"
11
12
"github.com/prometheus/prometheus/prompb"
13
+ "github.com/prometheus/prometheus/tsdb/tsdbutil"
12
14
"github.com/stretchr/testify/require"
13
15
14
16
"github.com/cortexproject/cortex/integration/e2e"
@@ -51,14 +53,16 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
51
53
52
54
seriesTimestamp := time .Now ()
53
55
series2Timestamp := seriesTimestamp .Add (blockRangePeriod * 2 )
54
- series1 := e2e .GenerateHistogramSeries ("series_1" , seriesTimestamp , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
55
- series1Float := e2e .GenerateHistogramSeries ("series_1" , seriesTimestamp , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
56
+ histogramIdx1 := rand .Uint32 ()
57
+ series1 := e2e .GenerateHistogramSeries ("series_1" , seriesTimestamp , histogramIdx1 , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
58
+ series1Float := e2e .GenerateHistogramSeries ("series_1" , seriesTimestamp , histogramIdx1 , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
56
59
res , err := c .Push (append (series1 , series1Float ... ))
57
60
require .NoError (t , err )
58
61
require .Equal (t , 200 , res .StatusCode )
59
62
60
- series2 := e2e .GenerateHistogramSeries ("series_2" , series2Timestamp , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
61
- series2Float := e2e .GenerateHistogramSeries ("series_2" , series2Timestamp , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
63
+ histogramIdx2 := rand .Uint32 ()
64
+ series2 := e2e .GenerateHistogramSeries ("series_2" , series2Timestamp , histogramIdx2 , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
65
+ series2Float := e2e .GenerateHistogramSeries ("series_2" , series2Timestamp , histogramIdx2 , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
62
66
res , err = c .Push (append (series2 , series2Float ... ))
63
67
require .NoError (t , err )
64
68
require .Equal (t , 200 , res .StatusCode )
@@ -96,6 +100,8 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
96
100
c , err = e2ecortex .NewClient ("" , queryFrontend .HTTPEndpoint (), "" , "" , "user-1" )
97
101
require .NoError (t , err )
98
102
103
+ expectedHistogram1 := tsdbutil .GenerateTestHistogram (int (histogramIdx1 ))
104
+ expectedHistogram2 := tsdbutil .GenerateTestHistogram (int (histogramIdx2 ))
99
105
result , err := c .QueryRange (`series_1` , series2Timestamp .Add (- time .Minute * 10 ), series2Timestamp , time .Second )
100
106
require .NoError (t , err )
101
107
require .Equal (t , model .ValMatrix , result .Type ())
@@ -106,6 +112,8 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
106
112
require .NotEmpty (t , ss .Histograms )
107
113
for _ , h := range ss .Histograms {
108
114
require .NotEmpty (t , h )
115
+ require .Equal (t , float64 (expectedHistogram1 .Count ), float64 (h .Histogram .Count ))
116
+ require .Equal (t , float64 (expectedHistogram1 .Sum ), float64 (h .Histogram .Sum ))
109
117
}
110
118
}
111
119
@@ -119,6 +127,8 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
119
127
require .NotEmpty (t , ss .Histograms )
120
128
for _ , h := range ss .Histograms {
121
129
require .NotEmpty (t , h )
130
+ require .Equal (t , float64 (expectedHistogram2 .Count ), float64 (h .Histogram .Count ))
131
+ require .Equal (t , float64 (expectedHistogram2 .Sum ), float64 (h .Histogram .Sum ))
122
132
}
123
133
}
124
134
@@ -129,6 +139,8 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
129
139
require .Equal (t , 2 , v .Len ())
130
140
for _ , s := range v {
131
141
require .NotNil (t , s .Histogram )
142
+ require .Equal (t , float64 (expectedHistogram1 .Count ), float64 (s .Histogram .Count ))
143
+ require .Equal (t , float64 (expectedHistogram1 .Sum ), float64 (s .Histogram .Sum ))
132
144
}
133
145
134
146
result , err = c .Query (`series_2` , series2Timestamp )
@@ -138,5 +150,7 @@ func TestNativeHistogramIngestionAndQuery(t *testing.T) {
138
150
require .Equal (t , 2 , v .Len ())
139
151
for _ , s := range v {
140
152
require .NotNil (t , s .Histogram )
153
+ require .Equal (t , float64 (expectedHistogram2 .Count ), float64 (s .Histogram .Count ))
154
+ require .Equal (t , float64 (expectedHistogram2 .Sum ), float64 (s .Histogram .Sum ))
141
155
}
142
156
}
0 commit comments