Fix alerts with evaluation interval more than 30 seconds resolving in Alertmanager (#39513) (#39523)
(cherry picked from commit 27609dc2c5)
Co-authored-by: George Robinson <george.robinson@grafana.com>
This commit is contained in:
co-authored by
George Robinson
parent
22563454b7
commit
4ffa29d959
@@ -158,7 +158,7 @@ func (a *State) TrimResults(alertRule *ngModels.AlertRule) {
|
||||
func (a *State) setEndsAt(alertRule *ngModels.AlertRule, result eval.Result) {
|
||||
ends := ResendDelay
|
||||
if alertRule.IntervalSeconds > int64(ResendDelay.Seconds()) {
|
||||
ends = time.Duration(alertRule.IntervalSeconds)
|
||||
ends = time.Second * time.Duration(alertRule.IntervalSeconds)
|
||||
}
|
||||
|
||||
a.EndsAt = result.EvaluatedAt.Add(ends * 3)
|
||||
|
||||
@@ -149,14 +149,14 @@ func TestSetEndsAt(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "more than resend delay: for=unset,interval=1m - endsAt = interval * 3",
|
||||
expected: evaluationTime.Add(60 * 3),
|
||||
expected: evaluationTime.Add(time.Second * 60 * 3),
|
||||
testRule: &ngmodels.AlertRule{
|
||||
IntervalSeconds: 60,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "more than resend delay: for=0s,interval=1m - endsAt = resendDelay * 3",
|
||||
expected: evaluationTime.Add(60 * 3),
|
||||
expected: evaluationTime.Add(time.Second * 60 * 3),
|
||||
testRule: &ngmodels.AlertRule{
|
||||
For: 0 * time.Second,
|
||||
IntervalSeconds: 60,
|
||||
@@ -164,7 +164,7 @@ func TestSetEndsAt(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "more than resend delay: for=1m,interval=5m - endsAt = interval * 3",
|
||||
expected: evaluationTime.Add(300 * 3),
|
||||
expected: evaluationTime.Add(time.Second * 300 * 3),
|
||||
testRule: &ngmodels.AlertRule{
|
||||
For: 60 * time.Second,
|
||||
IntervalSeconds: 300,
|
||||
@@ -172,7 +172,7 @@ func TestSetEndsAt(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "more than resend delay: for=5m,interval=1m - endsAt = interval * 3",
|
||||
expected: evaluationTime.Add(60 * 3),
|
||||
expected: evaluationTime.Add(time.Second * 60 * 3),
|
||||
testRule: &ngmodels.AlertRule{
|
||||
For: 300 * time.Second,
|
||||
IntervalSeconds: 60,
|
||||
|
||||
Reference in New Issue
Block a user