Fix subqueries with default resolution in promql unit tests

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
This commit is contained in:
Julien Pivotto 2021-03-07 09:19:33 +01:00
parent 77e648534e
commit 5742a18590
4 changed files with 14 additions and 8 deletions

View file

@ -22,3 +22,7 @@ groups:
# A recording rule that doesn't depend on input series. # A recording rule that doesn't depend on input series.
- record: fixed_data - record: fixed_data
expr: 1 expr: 1
# Subquery with default resolution test.
- record: suquery_interval_test
expr: count_over_time(up[5m:])

View file

@ -157,6 +157,7 @@ func (tg *testGroup) test(evalInterval time.Duration, groupOrderMap map[string]i
return []error{err} return []error{err}
} }
defer suite.Close() defer suite.Close()
suite.SubqueryInterval = evalInterval
// Load the rule files. // Load the rule files.
opts := &rules.ManagerOptions{ opts := &rules.ManagerOptions{

View file

@ -22,8 +22,7 @@ You can use `promtool` to test your rules.
rule_files: rule_files:
[ - <file_name> ] [ - <file_name> ]
# optional, default = 1m [ evaluation_interval: <duration> | default = 1m ]
evaluation_interval: <duration>
# The order in which group names are listed below will be the order of evaluation of # The order in which group names are listed below will be the order of evaluation of
# rule groups (at a given evaluation time). The order is guaranteed only for the groups mentioned below. # rule groups (at a given evaluation time). The order is guaranteed only for the groups mentioned below.

View file

@ -657,7 +657,8 @@ type LazyLoader struct {
loadCmd *loadCmd loadCmd *loadCmd
storage storage.Storage storage storage.Storage
SubqueryInterval time.Duration
queryEngine *Engine queryEngine *Engine
context context.Context context context.Context
@ -710,11 +711,12 @@ func (ll *LazyLoader) clear() {
ll.storage = teststorage.New(ll) ll.storage = teststorage.New(ll)
opts := EngineOpts{ opts := EngineOpts{
Logger: nil, Logger: nil,
Reg: nil, Reg: nil,
MaxSamples: 10000, MaxSamples: 10000,
Timeout: 100 * time.Second, Timeout: 100 * time.Second,
EnableAtModifier: true, NoStepSubqueryIntervalFn: func(int64) int64 { return durationMilliseconds(ll.SubqueryInterval) },
EnableAtModifier: true,
} }
ll.queryEngine = NewEngine(opts) ll.queryEngine = NewEngine(opts)