@@ -37,8 +37,14 @@ func (n nopAppender) Commit() error {
3737func (n nopAppender ) Rollback () error { return nil }
3838func (n nopAppender ) Appender () (storage.Appender , error ) { return n , nil }
3939
40+ type nopQueryable struct {}
41+
42+ func (n nopQueryable ) Querier (_ context.Context , _ , _ int64 ) (storage.Querier , error ) {
43+ return storage .NoopQuerier (), nil
44+ }
45+
4046// Regression test against https://github.com/thanos-io/thanos/issues/1779.
41- func TestRun (t * testing.T ) {
47+ func TestRun_Subqueries (t * testing.T ) {
4248 dir , err := ioutil .TempDir ("" , "test_rule_run" )
4349 testutil .Ok (t , err )
4450 defer func () { testutil .Ok (t , os .RemoveAll (dir )) }()
@@ -65,6 +71,7 @@ groups:
6571 Logger : log .NewLogfmtLogger (os .Stderr ),
6672 Context : context .Background (),
6773 Appendable : nopAppendable {},
74+ Queryable : nopQueryable {},
6875 },
6976 func (partialResponseStrategy storepb.PartialResponseStrategy ) rules.QueryFunc {
7077 return func (ctx context.Context , q string , t time.Time ) (vectors promql.Vector , e error ) {
@@ -77,17 +84,16 @@ groups:
7784 },
7885 labels .FromStrings ("replica" , "1" ),
7986 )
80- testutil .Ok (t , thanosRuleMgr .Update (10 * time .Second , []string {filepath .Join (dir , "rule.yaml" )}))
87+ testutil .Ok (t , thanosRuleMgr .Update (1 * time .Second , []string {filepath .Join (dir , "rule.yaml" )}))
8188
8289 thanosRuleMgr .Run ()
8390 defer thanosRuleMgr .Stop ()
8491
8592 select {
86- case <- time .After (2 * time .Minute ):
93+ case <- time .After (1 * time .Minute ):
8794 t .Fatal ("timeout while waiting on rule manager query evaluation" )
8895 case <- queryDone :
8996 }
90-
9197 testutil .Equals (t , "rate(some_metric[1h:5m] offset 1d)" , query )
9298}
9399
@@ -160,7 +166,8 @@ groups:
160166 nil ,
161167 dir ,
162168 rules.ManagerOptions {
163- Logger : log .NewLogfmtLogger (os .Stderr ),
169+ Logger : log .NewLogfmtLogger (os .Stderr ),
170+ Queryable : nopQueryable {},
164171 },
165172 func (partialResponseStrategy storepb.PartialResponseStrategy ) rules.QueryFunc {
166173 return func (ctx context.Context , q string , t time.Time ) (promql.Vector , error ) {
@@ -287,7 +294,8 @@ func TestManager_Rules(t *testing.T) {
287294 nil ,
288295 dir ,
289296 rules.ManagerOptions {
290- Logger : log .NewLogfmtLogger (os .Stderr ),
297+ Logger : log .NewLogfmtLogger (os .Stderr ),
298+ Queryable : nopQueryable {},
291299 },
292300 func (partialResponseStrategy storepb.PartialResponseStrategy ) rules.QueryFunc {
293301 return func (ctx context.Context , q string , t time.Time ) (promql.Vector , error ) {
0 commit comments