diff --git a/pkg/services/ngalert/state/state.go b/pkg/services/ngalert/state/state.go index 85bd2e0081c..3f72ae58ca5 100644 --- a/pkg/services/ngalert/state/state.go +++ b/pkg/services/ngalert/state/state.go @@ -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) diff --git a/pkg/services/ngalert/state/state_test.go b/pkg/services/ngalert/state/state_test.go index a22fa98cb39..e8d5cdd2bc0 100644 --- a/pkg/services/ngalert/state/state_test.go +++ b/pkg/services/ngalert/state/state_test.go @@ -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,