(t *testing.T, enableRulesBackup bool)
| 351 | } |
| 352 | |
| 353 | func testRulerAPIWithSharding(t *testing.T, enableRulesBackup bool) { |
| 354 | const numRulesGroups = 100 |
| 355 | |
| 356 | random := rand.New(rand.NewSource(time.Now().UnixNano())) |
| 357 | s, err := e2e.NewScenario(networkName) |
| 358 | require.NoError(t, err) |
| 359 | defer s.Close() |
| 360 | |
| 361 | // Generate multiple rule groups, with 1 rule each. |
| 362 | ruleGroups := make([]rulefmt.RuleGroup, numRulesGroups) |
| 363 | expectedNames := make([]string, numRulesGroups) |
| 364 | alertCount := 0 |
| 365 | evalInterval, _ := model.ParseDuration("1s") |
| 366 | groupLabels := map[string]string{ |
| 367 | "group_label_1": "val1", |
| 368 | "group_label_2": "val2", |
| 369 | "duplicate_label": "group_val", |
| 370 | } |
| 371 | ruleLabels := map[string]string{ |
| 372 | "rule_label_1": "val1", |
| 373 | "rule_label_2": "val2", |
| 374 | "duplicate_label": "rule_val", |
| 375 | } |
| 376 | for i := 0; i < numRulesGroups; i++ { |
| 377 | num := random.Intn(100) |
| 378 | ruleName := fmt.Sprintf("test_%d", i) |
| 379 | expectedNames[i] = ruleName |
| 380 | if num%2 == 0 { |
| 381 | alertCount++ |
| 382 | ruleGroups[i] = rulefmt.RuleGroup{ |
| 383 | Name: ruleName, |
| 384 | Interval: evalInterval, |
| 385 | Rules: []rulefmt.Rule{{ |
| 386 | Alert: fmt.Sprintf("rule_%d", i), |
| 387 | Expr: strconv.Itoa(i), |
| 388 | Labels: ruleLabels, |
| 389 | }}, |
| 390 | Labels: groupLabels, |
| 391 | } |
| 392 | } else { |
| 393 | ruleGroups[i] = rulefmt.RuleGroup{ |
| 394 | Name: ruleName, |
| 395 | Interval: evalInterval, |
| 396 | Rules: []rulefmt.Rule{{ |
| 397 | Record: fmt.Sprintf("rule_%d", i), |
| 398 | Labels: ruleLabels, |
| 399 | Expr: strconv.Itoa(i), |
| 400 | }}, |
| 401 | Labels: groupLabels, |
| 402 | } |
| 403 | } |
| 404 | } |
| 405 | |
| 406 | // Start dependencies. |
| 407 | consul := e2edb.NewConsul() |
| 408 | minio := e2edb.NewMinio(9000, rulestoreBucketName) |
| 409 | require.NoError(t, s.StartAndWaitReady(consul, minio)) |
| 410 |
no test coverage detected