@@ -332,104 +332,159 @@ func TestGetRules(t *testing.T) {
332
332
sharding bool
333
333
shardingStrategy string
334
334
shuffleShardSize int
335
+ rulesRequest RulesRequest
336
+ expectedCount map [string ]int
335
337
}
336
338
337
- //ruleMap := rulesMap{
338
- // "user": []*rulespb.RuleDesc{
339
- // {
340
- // Record: "test_user1_1",
341
- // Expr: "sum(rate(node_cpu_seconds_total[3h:10m]))",
342
- // },
343
- // },
344
- //}
339
+ ruleMap := rulesMap {
340
+ "ruler1-user1-rule-group1" : []* rulespb.RuleDesc {
341
+ {
342
+ Record : "rtest_user1_1" ,
343
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
344
+ },
345
+ {
346
+ Alert : "atest_user1_1" ,
347
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
348
+ },
349
+ },
350
+ "ruler1-user1-rule-group2" : []* rulespb.RuleDesc {
351
+ {
352
+ Record : "rtest_user1_1" ,
353
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
354
+ },
355
+ },
356
+ "ruler1-user2-rule-group1" : []* rulespb.RuleDesc {
357
+ {
358
+ Record : "rtest_user1_1" ,
359
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
360
+ },
361
+ },
362
+ "ruler2-user1-rule-group3" : []* rulespb.RuleDesc {
363
+ {
364
+ Record : "rtest_user1_1" ,
365
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
366
+ },
367
+ {
368
+ Alert : "atest_user1_1" ,
369
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
370
+ },
371
+ },
372
+ "ruler2-user2-rule-group1" : []* rulespb.RuleDesc {
373
+ {
374
+ Record : "rtest_user1_1" ,
375
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
376
+ },
377
+ {
378
+ Alert : "atest_user1_1" ,
379
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
380
+ },
381
+ },
382
+ "ruler2-user2-rule-group2" : []* rulespb.RuleDesc {
383
+ {
384
+ Record : "rtest_user1_1" ,
385
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
386
+ },
387
+ {
388
+ Alert : "atest_user1_1" ,
389
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
390
+ },
391
+ },
392
+ "ruler3-user2-rule-group1" : []* rulespb.RuleDesc {
393
+ {
394
+ Record : "rtest_user1_1" ,
395
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
396
+ },
397
+ {
398
+ Alert : "atest_user1_1" ,
399
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
400
+ },
401
+ },
402
+ "ruler3-user2-rule-group2" : []* rulespb.RuleDesc {
403
+ {
404
+ Record : "rtest_user1_1" ,
405
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
406
+ },
407
+ {
408
+ Alert : "atest_user1_1" ,
409
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
410
+ },
411
+ },
412
+ "ruler3-user3-rule-group1" : []* rulespb.RuleDesc {
413
+ {
414
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
415
+ Record : "rtest_user1_1" ,
416
+ },
417
+ {
418
+ Alert : "atest_user1_1" ,
419
+ Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
420
+ },
421
+ },
422
+ }
345
423
346
424
expectedRules := expectedRulesMap {
347
425
"ruler1" : map [string ]rulespb.RuleGroupList {
348
426
"user1" : {
349
- & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "first" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
350
- {
351
- Record : "test_user1_1" ,
352
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
353
- },
354
- }},
355
- & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "second" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
356
- {
357
- Record : "test_user1_2" ,
358
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
359
- },
360
- }},
427
+ & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "first" , Interval : 10 * time .Second , Rules : ruleMap ["ruler1-user1-rule-group1" ]},
428
+ & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "second" , Interval : 10 * time .Second , Rules : ruleMap ["ruler1-user1-rule-group2" ]},
361
429
},
362
430
"user2" : {
363
- & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
364
- {
365
- Record : "test_user2" ,
366
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
367
- },
368
- }},
431
+ & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : ruleMap ["ruler1-user2-rule-group1" ]},
369
432
},
370
433
},
371
434
"ruler2" : map [string ]rulespb.RuleGroupList {
372
435
"user1" : {
373
- & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
374
- {
375
- Record : "test_user1" ,
376
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
377
- },
378
- }},
436
+ & rulespb.RuleGroupDesc {User : "user1" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : ruleMap ["ruler2-user1-rule-group3" ]},
379
437
},
380
438
"user2" : {
381
- & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "first" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
382
- {
383
- Record : "test_user2_1" ,
384
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
385
- },
386
- }},
387
- & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "second" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
388
- {
389
- Record : "test_user2_2" ,
390
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
391
- },
392
- }},
439
+ & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "first" , Interval : 10 * time .Second , Rules : ruleMap ["ruler2-user2-rule-group1" ]},
440
+ & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "second" , Interval : 10 * time .Second , Rules : ruleMap ["ruler2-user2-rule-group2" ]},
393
441
},
394
442
},
395
443
"ruler3" : map [string ]rulespb.RuleGroupList {
396
444
"user3" : {
397
- & rulespb.RuleGroupDesc {User : "user3" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
398
- {
399
- Record : "test_user3" ,
400
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
401
- },
402
- }},
445
+ & rulespb.RuleGroupDesc {User : "user3" , Namespace : "namespace" , Name : "third" , Interval : 10 * time .Second , Rules : ruleMap ["ruler3-user3-rule-group1" ]},
403
446
},
404
447
"user2" : {
405
- & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "forth" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
406
- {
407
- Record : "test_user2_1" ,
408
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
409
- },
410
- }},
411
- & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "fifty" , Interval : 10 * time .Second , Rules : []* rulespb.RuleDesc {
412
- {
413
- Record : "test_user2_2" ,
414
- Expr : "sum(rate(node_cpu_seconds_total[3h:10m]))" ,
415
- },
416
- }},
448
+ & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "forth" , Interval : 10 * time .Second , Rules : ruleMap ["ruler3-user2-rule-group1" ]},
449
+ & rulespb.RuleGroupDesc {User : "user2" , Namespace : "namespace" , Name : "fifty" , Interval : 10 * time .Second , Rules : ruleMap ["ruler3-user2-rule-group2" ]},
417
450
},
418
451
},
419
452
}
420
453
421
454
testCases := map [string ]testCase {
422
455
"No Sharding" : {
423
456
sharding : false ,
457
+ rulesRequest : RulesRequest {
458
+ Type : AlertingRuleFilter ,
459
+ },
460
+ expectedCount : map [string ]int {
461
+ "user1" : 2 ,
462
+ "user2" : 4 ,
463
+ "user3" : 1 ,
464
+ },
424
465
},
425
466
"Default Sharding" : {
426
467
sharding : true ,
427
468
shardingStrategy : util .ShardingStrategyDefault ,
469
+ rulesRequest : RulesRequest {},
470
+ expectedCount : map [string ]int {
471
+ "user1" : 5 ,
472
+ "user2" : 9 ,
473
+ "user3" : 2 ,
474
+ },
428
475
},
429
476
"Shuffle Sharding and ShardSize = 2" : {
430
477
sharding : true ,
431
478
shuffleShardSize : 2 ,
432
479
shardingStrategy : util .ShardingStrategyShuffle ,
480
+ rulesRequest : RulesRequest {
481
+ Type : RecordingRuleFilter ,
482
+ },
483
+ expectedCount : map [string ]int {
484
+ "user1" : 3 ,
485
+ "user2" : 5 ,
486
+ "user3" : 1 ,
487
+ },
433
488
},
434
489
}
435
490
@@ -502,16 +557,16 @@ func TestGetRules(t *testing.T) {
502
557
forEachRuler (func (_ string , r * Ruler ) {
503
558
r .syncRules (context .Background (), rulerSyncReasonInitial )
504
559
})
505
- t .Log ("Rules ---->" )
506
560
for u := range allRulesByUser {
507
561
ctx := user .InjectOrgID (context .Background (), u )
508
562
forEachRuler (func (_ string , r * Ruler ) {
509
- rules , err := r .GetRules (ctx , RulesRequest {
510
- Type : "" ,
511
- })
512
- t .Log ("Rules ---->" , rules )
563
+ ruleStateDescriptions , err := r .GetRules (ctx , tc .rulesRequest )
513
564
require .NoError (t , err )
514
- require .Equal (t , len (allRulesByUser [u ]), len (rules ))
565
+ rct := 0
566
+ for _ , ruleStateDesc := range ruleStateDescriptions {
567
+ rct += len (ruleStateDesc .ActiveRules )
568
+ }
569
+ require .Equal (t , tc .expectedCount [u ], rct )
515
570
if tc .sharding {
516
571
mockPoolClient := r .clientsPool .(* mockRulerClientsPool )
517
572
0 commit comments