mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-26 06:04:05 -08:00
Get unique eval times for alert unit tests (#4964)
Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>
This commit is contained in:
parent
dbd1d58c89
commit
fbadd88ba5
|
@ -160,14 +160,14 @@ func (tg *testGroup) test(mint, maxt time.Time, evalInterval time.Duration, grou
|
||||||
// All this preparation is so that we can test alerts as we evaluate the rules.
|
// All this preparation is so that we can test alerts as we evaluate the rules.
|
||||||
// This avoids storing them in memory, as the number of evals might be high.
|
// This avoids storing them in memory, as the number of evals might be high.
|
||||||
|
|
||||||
// All the `eval_time` for which we have unit tests.
|
// All the `eval_time` for which we have unit tests for alerts.
|
||||||
var alertEvalTimes []time.Duration
|
alertEvalTimesMap := map[time.Duration]struct{}{}
|
||||||
// Map of all the eval_time+alertname combination present in the unit tests.
|
// Map of all the eval_time+alertname combination present in the unit tests.
|
||||||
alertsInTest := make(map[time.Duration]map[string]struct{})
|
alertsInTest := make(map[time.Duration]map[string]struct{})
|
||||||
// Map of all the unit tests for given eval_time.
|
// Map of all the unit tests for given eval_time.
|
||||||
alertTests := make(map[time.Duration][]alertTestCase)
|
alertTests := make(map[time.Duration][]alertTestCase)
|
||||||
for _, alert := range tg.AlertRuleTests {
|
for _, alert := range tg.AlertRuleTests {
|
||||||
alertEvalTimes = append(alertEvalTimes, alert.EvalTime)
|
alertEvalTimesMap[alert.EvalTime] = struct{}{}
|
||||||
|
|
||||||
if _, ok := alertsInTest[alert.EvalTime]; !ok {
|
if _, ok := alertsInTest[alert.EvalTime]; !ok {
|
||||||
alertsInTest[alert.EvalTime] = make(map[string]struct{})
|
alertsInTest[alert.EvalTime] = make(map[string]struct{})
|
||||||
|
@ -176,6 +176,10 @@ func (tg *testGroup) test(mint, maxt time.Time, evalInterval time.Duration, grou
|
||||||
|
|
||||||
alertTests[alert.EvalTime] = append(alertTests[alert.EvalTime], alert)
|
alertTests[alert.EvalTime] = append(alertTests[alert.EvalTime], alert)
|
||||||
}
|
}
|
||||||
|
alertEvalTimes := make([]time.Duration, 0, len(alertEvalTimesMap))
|
||||||
|
for k := range alertEvalTimesMap {
|
||||||
|
alertEvalTimes = append(alertEvalTimes, k)
|
||||||
|
}
|
||||||
sort.Slice(alertEvalTimes, func(i, j int) bool {
|
sort.Slice(alertEvalTimes, func(i, j int) bool {
|
||||||
return alertEvalTimes[i] < alertEvalTimes[j]
|
return alertEvalTimes[i] < alertEvalTimes[j]
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue