Alerting: Update state manager to accept reserved labels (#52189)

* add tests for cache getOrCreate
* update ProcessEvalResults to accept extra lables
* extract to getRuleExtraLabels
* move populating of constant rule labels to extra labels
This commit is contained in:
Yuriy Tseretyan
2022-07-14 15:59:59 -04:00
committed by GitHub
parent 19cf9fa87d
commit e5e8747ee9
7 changed files with 288 additions and 77 deletions

View File

@@ -6,6 +6,8 @@ import (
"math/rand"
"time"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/grafana/grafana/pkg/util"
)
@@ -38,19 +40,11 @@ func AlertRuleGen(mutators ...AlertRuleMutator) func() *AlertRule {
var annotations map[string]string = nil
if rand.Int63()%2 == 0 {
qty := rand.Intn(5)
annotations = make(map[string]string, qty)
for i := 0; i < qty; i++ {
annotations[util.GenerateShortUID()] = util.GenerateShortUID()
}
annotations = GenerateAlertLabels(rand.Intn(5), "ann-")
}
var labels map[string]string = nil
if rand.Int63()%2 == 0 {
qty := rand.Intn(5)
labels = make(map[string]string, qty)
for i := 0; i < qty; i++ {
labels[util.GenerateShortUID()] = util.GenerateShortUID()
}
labels = GenerateAlertLabels(rand.Intn(5), "lbl-")
}
var dashUID *string = nil
@@ -91,6 +85,11 @@ func AlertRuleGen(mutators ...AlertRuleMutator) func() *AlertRule {
}
}
func WithNotEmptyLabels(count int, prefix string) AlertRuleMutator {
return func(rule *AlertRule) {
rule.Labels = GenerateAlertLabels(count, prefix)
}
}
func WithUniqueID() AlertRuleMutator {
usedID := make(map[int64]struct{})
return func(rule *AlertRule) {
@@ -133,6 +132,14 @@ func WithSequentialGroupIndex() AlertRuleMutator {
}
}
func GenerateAlertLabels(count int, prefix string) data.Labels {
labels := make(data.Labels, count)
for i := 0; i < count; i++ {
labels[prefix+"key-"+util.GenerateShortUID()] = prefix + "value-" + util.GenerateShortUID()
}
return labels
}
func GenerateAlertQuery() AlertQuery {
f := rand.Intn(10) + 5
t := rand.Intn(f)