@@ -5,11 +5,11 @@ package integration
5
5
6
6
import (
7
7
"math/rand"
8
- "net/http"
9
8
"path"
10
9
"testing"
11
10
"time"
12
11
12
+ remoteapi "github.com/prometheus/client_golang/exp/api/remote"
13
13
"github.com/prometheus/common/model"
14
14
"github.com/prometheus/prometheus/model/labels"
15
15
"github.com/prometheus/prometheus/prompb"
@@ -95,10 +95,9 @@ func TestIngesterRollingUpdate(t *testing.T) {
95
95
96
96
// series push
97
97
symbols1 , series , expectedVector := e2e .GenerateSeriesV2 ("test_series" , now , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "foo" , Value : "bar" })
98
- res , err := c .PushV2 (symbols1 , series )
98
+ stats , err := c .PushV2 (symbols1 , series )
99
99
require .NoError (t , err )
100
- require .Equal (t , 200 , res .StatusCode )
101
- testPushHeader (t , res .Header , "1" , "0" , "0" )
100
+ testPushHeader (t , stats , 1 , 0 , 0 )
102
101
103
102
// sample
104
103
result , err := c .Query ("test_series" , now )
@@ -113,16 +112,14 @@ func TestIngesterRollingUpdate(t *testing.T) {
113
112
// histogram
114
113
histogramIdx := rand .Uint32 ()
115
114
symbols2 , histogramSeries := e2e .GenerateHistogramSeriesV2 ("test_histogram" , now , histogramIdx , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
116
- res , err = c .PushV2 (symbols2 , histogramSeries )
115
+ writeStats , err : = c .PushV2 (symbols2 , histogramSeries )
117
116
require .NoError (t , err )
118
- require .Equal (t , 200 , res .StatusCode )
119
- testPushHeader (t , res .Header , "0" , "1" , "0" )
117
+ testPushHeader (t , writeStats , 0 , 1 , 0 )
120
118
121
119
symbols3 , histogramFloatSeries := e2e .GenerateHistogramSeriesV2 ("test_histogram" , now , histogramIdx , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
122
- res , err = c .PushV2 (symbols3 , histogramFloatSeries )
120
+ writeStats , err = c .PushV2 (symbols3 , histogramFloatSeries )
123
121
require .NoError (t , err )
124
- require .Equal (t , 200 , res .StatusCode )
125
- testPushHeader (t , res .Header , "0" , "1" , "0" )
122
+ testPushHeader (t , writeStats , 0 , 1 , 0 )
126
123
127
124
testHistogramTimestamp := now .Add (blockRangePeriod * 2 )
128
125
expectedHistogram := tsdbutil .GenerateTestHistogram (int64 (histogramIdx ))
@@ -198,9 +195,9 @@ func TestIngest_SenderSendPRW2_DistributorNotAllowPRW2(t *testing.T) {
198
195
199
196
// series push
200
197
symbols1 , series , _ := e2e .GenerateSeriesV2 ("test_series" , now , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "foo" , Value : "bar" })
201
- res , err : = c .PushV2 (symbols1 , series )
202
- require .NoError (t , err )
203
- require .Equal (t , 200 , res . StatusCode )
198
+ _ , err = c .PushV2 (symbols1 , series )
199
+ require .Error (t , err )
200
+ require .Contains (t , err . Error (), "sent v2 request; got 2xx, but PRW 2.0 response header statistics indicate 0 samples, 0 histograms and 0 exemplars were accepted" )
204
201
205
202
// sample
206
203
result , err := c .Query ("test_series" , now )
@@ -266,10 +263,9 @@ func TestIngest(t *testing.T) {
266
263
267
264
// series push
268
265
symbols1 , series , expectedVector := e2e .GenerateSeriesV2 ("test_series" , now , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "foo" , Value : "bar" })
269
- res , err := c .PushV2 (symbols1 , series )
266
+ writeStats , err := c .PushV2 (symbols1 , series )
270
267
require .NoError (t , err )
271
- require .Equal (t , 200 , res .StatusCode )
272
- testPushHeader (t , res .Header , "1" , "0" , "0" )
268
+ testPushHeader (t , writeStats , 1 , 0 , 0 )
273
269
274
270
// sample
275
271
result , err := c .Query ("test_series" , now )
@@ -284,17 +280,15 @@ func TestIngest(t *testing.T) {
284
280
// histogram
285
281
histogramIdx := rand .Uint32 ()
286
282
symbols2 , histogramSeries := e2e .GenerateHistogramSeriesV2 ("test_histogram" , now , histogramIdx , false , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "false" })
287
- res , err = c .PushV2 (symbols2 , histogramSeries )
283
+ writeStats , err = c .PushV2 (symbols2 , histogramSeries )
288
284
require .NoError (t , err )
289
- require .Equal (t , 200 , res .StatusCode )
290
- testPushHeader (t , res .Header , "0" , "1" , "0" )
285
+ testPushHeader (t , writeStats , 0 , 1 , 0 )
291
286
292
287
// float histogram
293
288
symbols3 , histogramFloatSeries := e2e .GenerateHistogramSeriesV2 ("test_histogram" , now , histogramIdx , true , prompb.Label {Name : "job" , Value : "test" }, prompb.Label {Name : "float" , Value : "true" })
294
- res , err = c .PushV2 (symbols3 , histogramFloatSeries )
289
+ writeStats , err = c .PushV2 (symbols3 , histogramFloatSeries )
295
290
require .NoError (t , err )
296
- require .Equal (t , 200 , res .StatusCode )
297
- testPushHeader (t , res .Header , "0" , "1" , "0" )
291
+ testPushHeader (t , writeStats , 0 , 1 , 0 )
298
292
299
293
testHistogramTimestamp := now .Add (blockRangePeriod * 2 )
300
294
expectedHistogram := tsdbutil .GenerateTestHistogram (int64 (histogramIdx ))
@@ -379,10 +373,9 @@ func TestExemplar(t *testing.T) {
379
373
},
380
374
}
381
375
382
- res , err := c .PushV2 (symbols , timeseries )
376
+ writeStats , err := c .PushV2 (symbols , timeseries )
383
377
require .NoError (t , err )
384
- require .Equal (t , 200 , res .StatusCode )
385
- testPushHeader (t , res .Header , "1" , "0" , "1" )
378
+ testPushHeader (t , writeStats , 1 , 0 , 1 )
386
379
387
380
start := time .Now ().Add (- time .Minute )
388
381
end := now .Add (time .Minute )
@@ -451,14 +444,13 @@ func Test_WriteStatWithReplication(t *testing.T) {
451
444
numSamples := 20
452
445
scrapeInterval := 30 * time .Second
453
446
symbols , series := e2e .GenerateV2SeriesWithSamples ("test_series" , start , scrapeInterval , 0 , numSamples , prompb.Label {Name : "job" , Value : "test" })
454
- res , err := c .PushV2 (symbols , []writev2.TimeSeries {series })
447
+ writeStats , err := c .PushV2 (symbols , []writev2.TimeSeries {series })
455
448
require .NoError (t , err )
456
- require .Equal (t , 200 , res .StatusCode )
457
- testPushHeader (t , res .Header , "20" , "0" , "0" )
449
+ testPushHeader (t , writeStats , 20 , 0 , 0 )
458
450
}
459
451
460
- func testPushHeader (t * testing.T , header http. Header , expectedSamples , expectedHistogram , expectedExemplars string ) {
461
- require .Equal (t , expectedSamples , header . Get ( "X-Prometheus-Remote-Write- Samples-Written" ) )
462
- require .Equal (t , expectedHistogram , header . Get ( "X-Prometheus-Remote-Write- Histograms-Written" ) )
463
- require .Equal (t , expectedExemplars , header . Get ( "X-Prometheus-Remote-Write- Exemplars-Written" ) )
452
+ func testPushHeader (t * testing.T , stats remoteapi. WriteResponseStats , expectedSamples , expectedHistogram , expectedExemplars int ) {
453
+ require .Equal (t , expectedSamples , stats . Samples )
454
+ require .Equal (t , expectedHistogram , stats . Histograms )
455
+ require .Equal (t , expectedExemplars , stats . Exemplars )
464
456
}
0 commit comments