mirror of https://github.com/grafana/grafana
Alerting: Move BaseInterval and MinInterval to UnifiedAlerting config (#45107)
* use base interval if legacy value is less than the base intervalpull/45344/head
parent
4f815e3d8e
commit
095ea44e97
@ -1,73 +0,0 @@ |
|||||||
package ngalert |
|
||||||
|
|
||||||
import ( |
|
||||||
"testing" |
|
||||||
"time" |
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/log" |
|
||||||
"github.com/grafana/grafana/pkg/setting" |
|
||||||
"github.com/stretchr/testify/require" |
|
||||||
) |
|
||||||
|
|
||||||
func TestGetRuleDefaultIntervalSeconds(t *testing.T) { |
|
||||||
testCases := []struct { |
|
||||||
desc string |
|
||||||
alertingMinIntervalCfg time.Duration |
|
||||||
// the expected default rule interval (applied if a rule interval is missing)
|
|
||||||
expDefaultInterval time.Duration |
|
||||||
// the expected minimum rule interval (enforced if a rule interval is lower than this value; it is used also for computing the default rule interval)
|
|
||||||
expMinInterval time.Duration |
|
||||||
}{ |
|
||||||
{ |
|
||||||
desc: "negative min rule interval", |
|
||||||
alertingMinIntervalCfg: -1, |
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
|
||||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
|
||||||
}, |
|
||||||
{ |
|
||||||
desc: "zero min rule interval", |
|
||||||
alertingMinIntervalCfg: 0, |
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
|
||||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
|
||||||
}, |
|
||||||
{ |
|
||||||
desc: "min rule interval not divided exactly by the scheduler interval", |
|
||||||
alertingMinIntervalCfg: 1, |
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
|
||||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
|
||||||
}, |
|
||||||
{ |
|
||||||
desc: "min rule interval equals base scheduler interval", |
|
||||||
alertingMinIntervalCfg: defaultBaseIntervalSeconds, // 10s
|
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
|
||||||
expMinInterval: defaultBaseIntervalSeconds, // 10s
|
|
||||||
}, |
|
||||||
{ |
|
||||||
desc: "valid min rule interval less than default rule interval", |
|
||||||
alertingMinIntervalCfg: time.Duration(defaultIntervalSeconds-defaultBaseIntervalSeconds) * time.Second, // 50s
|
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds) * time.Second, // 60s
|
|
||||||
expMinInterval: time.Duration(defaultIntervalSeconds-defaultBaseIntervalSeconds) * time.Second, // 50s
|
|
||||||
}, |
|
||||||
{ |
|
||||||
desc: "valid min rule interval greater than default rule interval", |
|
||||||
alertingMinIntervalCfg: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
|
||||||
expDefaultInterval: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
|
||||||
expMinInterval: time.Duration(defaultIntervalSeconds+defaultBaseIntervalSeconds) * time.Second, // 70s
|
|
||||||
}, |
|
||||||
} |
|
||||||
|
|
||||||
for _, tc := range testCases { |
|
||||||
t.Run(tc.desc, func(t *testing.T) { |
|
||||||
alertNG := AlertNG{ |
|
||||||
Log: log.New("test"), |
|
||||||
Cfg: &setting.Cfg{ |
|
||||||
UnifiedAlerting: setting.UnifiedAlertingSettings{ |
|
||||||
MinInterval: tc.alertingMinIntervalCfg, |
|
||||||
}, |
|
||||||
}, |
|
||||||
} |
|
||||||
require.Equal(t, tc.expDefaultInterval, alertNG.getRuleDefaultInterval()) |
|
||||||
require.Equal(t, tc.expMinInterval, alertNG.getRuleMinInterval()) |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue