MCPcopy Index your code
hub / github.com/cortexproject/cortex / testRulerAPIWithSharding

Function testRulerAPIWithSharding

integration/ruler_test.go:353–589  ·  view source on GitHub ↗
(t *testing.T, enableRulesBackup bool)

Source from the content-addressed store, hash-verified

351}
352
353func 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

Calls 15

CloseMethod · 0.95
StartAndWaitReadyMethod · 0.95
SetRuleGroupMethod · 0.95
GetPrometheusRulesMethod · 0.95
NewScenarioFunction · 0.92
NewRulerFunction · 0.92
NewClientFunction · 0.92
EqualsFunction · 0.92
LessFunction · 0.92
NetworkHTTPEndpointMethod · 0.80
HTTPEndpointMethod · 0.80

Tested by

no test coverage detected