Skip to content

Commit 7d06931

Browse files
test: peak value
Signed-off-by: Naman-B-Parlecha <[email protected]>
1 parent 0c73cd9 commit 7d06931

File tree

1 file changed

+57
-3
lines changed

1 file changed

+57
-3
lines changed

engine/explain_test.go

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ func TestQueryAnalyze(t *testing.T) {
251251
}
252252
}
253253
}
254-
255254
func TestAnalyzeOutputNode_Samples(t *testing.T) {
256255
t.Parallel()
257256
ng := engine.New(engine.Opts{EngineOpts: promql.EngineOpts{Timeout: 1 * time.Hour}, EnableAnalysis: true, DecodingConcurrency: 2})
@@ -299,9 +298,9 @@ func TestAnalyzeOutputNode_Samples(t *testing.T) {
299298
| | |---[duplicateLabelCheck]: max_series: 2 total_samples: 0 peak_samples: 0
300299
| | | |---[coalesce]: max_series: 2 total_samples: 0 peak_samples: 0
301300
| | | | |---[concurrent(buff=2)]: max_series: 1 total_samples: 0 peak_samples: 0
302-
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 0 mod 2): max_series: 1 total_samples: 1010 peak_samples: 20
301+
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 0 mod 2): max_series: 1 total_samples: 1010 peak_samples: 200
303302
| | | | |---[concurrent(buff=2)]: max_series: 1 total_samples: 0 peak_samples: 0
304-
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 1 mod 2): max_series: 1 total_samples: 1010 peak_samples: 20
303+
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 1 mod 2): max_series: 1 total_samples: 1010 peak_samples: 200
305304
`
306305
require.EqualValues(t, expected, result)
307306
}
@@ -332,3 +331,58 @@ func renderAnalysisTree(node *engine.AnalyzeOutputNode, level int) string {
332331

333332
return result.String()
334333
}
334+
335+
func TestAnalyzPeak(t *testing.T) {
336+
t.Parallel()
337+
ng := engine.New(engine.Opts{EngineOpts: promql.EngineOpts{Timeout: 1 * time.Hour}, EnableAnalysis: true, DecodingConcurrency: 2})
338+
ctx := context.Background()
339+
load := `load 30s
340+
http_requests_total{pod="nginx-1"} 1+1x100
341+
http_requests_total{pod="nginx-2"} 1+1x100`
342+
343+
tstorage := promqltest.LoadedStorage(t, load)
344+
defer tstorage.Close()
345+
minT := tstorage.Head().Meta().MinTime
346+
maxT := tstorage.Head().Meta().MaxTime
347+
348+
query, err := ng.NewInstantQuery(ctx, tstorage, nil, "http_requests_total", time.Unix(0, 0))
349+
testutil.Ok(t, err)
350+
queryResults := query.Exec(context.Background())
351+
testutil.Ok(t, queryResults.Err)
352+
explainableQuery := query.(engine.ExplainableQuery)
353+
analyzeOutput := explainableQuery.Analyze()
354+
require.Greater(t, analyzeOutput.PeakSamples(), int64(0))
355+
require.Greater(t, analyzeOutput.TotalSamples(), int64(0))
356+
357+
rangeQry, err := ng.NewRangeQuery(
358+
ctx,
359+
tstorage,
360+
promql.NewPrometheusQueryOpts(false, 0),
361+
"sum(rate(http_requests_total[10m])) by (pod)",
362+
time.Unix(minT, 0),
363+
time.Unix(maxT, 0),
364+
60*time.Second,
365+
)
366+
testutil.Ok(t, err)
367+
queryResults = rangeQry.Exec(context.Background())
368+
testutil.Ok(t, queryResults.Err)
369+
370+
explainableQuery = rangeQry.(engine.ExplainableQuery)
371+
analyzeOutput = explainableQuery.Analyze()
372+
373+
t.Logf("value of peak = %v", analyzeOutput.PeakSamples())
374+
require.Equal(t, int(200), analyzeOutput.PeakSamples())
375+
376+
result := renderAnalysisTree(analyzeOutput, 0)
377+
expected := `[duplicateLabelCheck]: max_series: 2 total_samples: 0 peak_samples: 0
378+
|---[concurrent(buff=2)]: max_series: 2 total_samples: 0 peak_samples: 0
379+
| |---[aggregate] sum by ([pod]): max_series: 2 total_samples: 0 peak_samples: 0
380+
| | |---[duplicateLabelCheck]: max_series: 2 total_samples: 0 peak_samples: 0
381+
| | | |---[coalesce]: max_series: 2 total_samples: 0 peak_samples: 0
382+
| | | | |---[concurrent(buff=2)]: max_series: 1 total_samples: 0 peak_samples: 0
383+
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 0 mod 2): max_series: 1 total_samples: 1010 peak_samples: 200
384+
| | | | |---[concurrent(buff=2)]: max_series: 1 total_samples: 0 peak_samples: 0
385+
| | | | | |---[matrixSelector] rate({[__name__="http_requests_total"]}[10m0s] 1 mod 2): max_series: 1 total_samples: 1010 peak_samples: 200
386+
`
387+
require.EqualValues(t, expected, result)
388+
}

0 commit comments

Comments
 (0)