Chore: Remove result fields from ngalert (#65410)
* remove result fields from ngalert * remove duplicate imports
This commit is contained in:
@@ -34,7 +34,7 @@ type AnnotationBackend struct {
|
||||
}
|
||||
|
||||
type RuleStore interface {
|
||||
GetAlertRuleByUID(ctx context.Context, query *ngmodels.GetAlertRuleByUIDQuery) error
|
||||
GetAlertRuleByUID(ctx context.Context, query *ngmodels.GetAlertRuleByUIDQuery) (*ngmodels.AlertRule, error)
|
||||
}
|
||||
|
||||
type AnnotationStore interface {
|
||||
@@ -89,16 +89,16 @@ func (h *AnnotationBackend) Query(ctx context.Context, query ngmodels.HistoryQue
|
||||
UID: query.RuleUID,
|
||||
OrgID: query.OrgID,
|
||||
}
|
||||
err := h.rules.GetAlertRuleByUID(ctx, &rq)
|
||||
rule, err := h.rules.GetAlertRuleByUID(ctx, &rq)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to look up the requested rule")
|
||||
}
|
||||
if rq.Result == nil {
|
||||
if rule == nil {
|
||||
return nil, fmt.Errorf("no such rule exists")
|
||||
}
|
||||
|
||||
q := annotations.ItemQuery{
|
||||
AlertID: rq.Result.ID,
|
||||
AlertID: rule.ID,
|
||||
OrgID: query.OrgID,
|
||||
From: query.From.Unix(),
|
||||
To: query.To.Unix(),
|
||||
|
||||
@@ -103,12 +103,13 @@ func (st *Manager) Warm(ctx context.Context, rulesReader RuleReader) {
|
||||
ruleCmd := ngModels.ListAlertRulesQuery{
|
||||
OrgID: orgId,
|
||||
}
|
||||
if err := rulesReader.ListAlertRules(ctx, &ruleCmd); err != nil {
|
||||
alertRules, err := rulesReader.ListAlertRules(ctx, &ruleCmd)
|
||||
if err != nil {
|
||||
st.log.Error("Unable to fetch previous state", "error", err)
|
||||
}
|
||||
|
||||
ruleByUID := make(map[string]*ngModels.AlertRule, len(ruleCmd.Result))
|
||||
for _, rule := range ruleCmd.Result {
|
||||
ruleByUID := make(map[string]*ngModels.AlertRule, len(alertRules))
|
||||
for _, rule := range alertRules {
|
||||
ruleByUID[rule.UID] = rule
|
||||
}
|
||||
|
||||
@@ -119,11 +120,12 @@ func (st *Manager) Warm(ctx context.Context, rulesReader RuleReader) {
|
||||
cmd := ngModels.ListAlertInstancesQuery{
|
||||
RuleOrgID: orgId,
|
||||
}
|
||||
if err := st.instanceStore.ListAlertInstances(ctx, &cmd); err != nil {
|
||||
alertInstances, err := st.instanceStore.ListAlertInstances(ctx, &cmd)
|
||||
if err != nil {
|
||||
st.log.Error("Unable to fetch previous state", "error", err)
|
||||
}
|
||||
|
||||
for _, entry := range cmd.Result {
|
||||
for _, entry := range alertInstances {
|
||||
ruleForEntry, ok := ruleByUID[entry.RuleUID]
|
||||
if !ok {
|
||||
// TODO Should we delete the orphaned state from the db?
|
||||
|
||||
@@ -2639,12 +2639,12 @@ func TestDeleteStateByRuleUID(t *testing.T) {
|
||||
st := state.NewManager(cfg)
|
||||
st.Warm(ctx, dbstore)
|
||||
q := &models.ListAlertInstancesQuery{RuleOrgID: rule.OrgID, RuleUID: rule.UID}
|
||||
_ = dbstore.ListAlertInstances(ctx, q)
|
||||
alerts, _ := dbstore.ListAlertInstances(ctx, q)
|
||||
existingStatesForRule := st.GetStatesForRuleUID(rule.OrgID, rule.UID)
|
||||
|
||||
// We have loaded the expected number of entries from the db
|
||||
assert.Equal(t, tc.startingStateCacheCount, len(existingStatesForRule))
|
||||
assert.Equal(t, tc.startingInstanceDBCount, len(q.Result))
|
||||
assert.Equal(t, tc.startingInstanceDBCount, len(alerts))
|
||||
|
||||
expectedReason := util.GenerateShortUID()
|
||||
transitions := st.DeleteStateByRuleUID(ctx, rule.GetKey(), expectedReason)
|
||||
@@ -2671,12 +2671,12 @@ func TestDeleteStateByRuleUID(t *testing.T) {
|
||||
}
|
||||
|
||||
q = &models.ListAlertInstancesQuery{RuleOrgID: rule.OrgID, RuleUID: rule.UID}
|
||||
_ = dbstore.ListAlertInstances(ctx, q)
|
||||
alertInstances, _ := dbstore.ListAlertInstances(ctx, q)
|
||||
existingStatesForRule = st.GetStatesForRuleUID(rule.OrgID, rule.UID)
|
||||
|
||||
// The expected number of state entries remains after states are deleted
|
||||
assert.Equal(t, tc.finalStateCacheCount, len(existingStatesForRule))
|
||||
assert.Equal(t, tc.finalInstanceDBCount, len(q.Result))
|
||||
assert.Equal(t, tc.finalInstanceDBCount, len(alertInstances))
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -2776,12 +2776,12 @@ func TestResetStateByRuleUID(t *testing.T) {
|
||||
st := state.NewManager(cfg)
|
||||
st.Warm(ctx, dbstore)
|
||||
q := &models.ListAlertInstancesQuery{RuleOrgID: rule.OrgID, RuleUID: rule.UID}
|
||||
_ = dbstore.ListAlertInstances(ctx, q)
|
||||
alerts, _ := dbstore.ListAlertInstances(ctx, q)
|
||||
existingStatesForRule := st.GetStatesForRuleUID(rule.OrgID, rule.UID)
|
||||
|
||||
// We have loaded the expected number of entries from the db
|
||||
assert.Equal(t, tc.startingStateCacheCount, len(existingStatesForRule))
|
||||
assert.Equal(t, tc.startingInstanceDBCount, len(q.Result))
|
||||
assert.Equal(t, tc.startingInstanceDBCount, len(alerts))
|
||||
|
||||
transitions := st.ResetStateByRuleUID(ctx, rule, models.StateReasonPaused)
|
||||
|
||||
@@ -2811,12 +2811,12 @@ func TestResetStateByRuleUID(t *testing.T) {
|
||||
assert.Equal(t, transitions, fakeHistorian.StateTransitions)
|
||||
|
||||
q = &models.ListAlertInstancesQuery{RuleOrgID: rule.OrgID, RuleUID: rule.UID}
|
||||
_ = dbstore.ListAlertInstances(ctx, q)
|
||||
alertInstances, _ := dbstore.ListAlertInstances(ctx, q)
|
||||
existingStatesForRule = st.GetStatesForRuleUID(rule.OrgID, rule.UID)
|
||||
|
||||
// The expected number of state entries remains after states are deleted
|
||||
assert.Equal(t, tc.finalStateCacheCount, len(existingStatesForRule))
|
||||
assert.Equal(t, tc.finalInstanceDBCount, len(q.Result))
|
||||
assert.Equal(t, tc.finalInstanceDBCount, len(alertInstances))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
// InstanceStore represents the ability to fetch and write alert instances.
|
||||
type InstanceStore interface {
|
||||
FetchOrgIds(ctx context.Context) ([]int64, error)
|
||||
ListAlertInstances(ctx context.Context, cmd *models.ListAlertInstancesQuery) error
|
||||
ListAlertInstances(ctx context.Context, cmd *models.ListAlertInstancesQuery) ([]*models.AlertInstance, error)
|
||||
SaveAlertInstances(ctx context.Context, cmd ...models.AlertInstance) error
|
||||
DeleteAlertInstances(ctx context.Context, keys ...models.AlertInstanceKey) error
|
||||
DeleteAlertInstancesByRule(ctx context.Context, key models.AlertRuleKey) error
|
||||
@@ -18,7 +18,7 @@ type InstanceStore interface {
|
||||
|
||||
// RuleReader represents the ability to fetch alert rules.
|
||||
type RuleReader interface {
|
||||
ListAlertRules(ctx context.Context, query *models.ListAlertRulesQuery) error
|
||||
ListAlertRules(ctx context.Context, query *models.ListAlertRulesQuery) (models.RulesGroup, error)
|
||||
}
|
||||
|
||||
// Historian maintains an audit log of alert state history.
|
||||
|
||||
@@ -21,11 +21,11 @@ type FakeInstanceStoreOp struct {
|
||||
Args []interface{}
|
||||
}
|
||||
|
||||
func (f *FakeInstanceStore) ListAlertInstances(_ context.Context, q *models.ListAlertInstancesQuery) error {
|
||||
func (f *FakeInstanceStore) ListAlertInstances(_ context.Context, q *models.ListAlertInstancesQuery) ([]*models.AlertInstance, error) {
|
||||
f.mtx.Lock()
|
||||
defer f.mtx.Unlock()
|
||||
f.RecordedOps = append(f.RecordedOps, *q)
|
||||
return nil
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (f *FakeInstanceStore) SaveAlertInstances(_ context.Context, q ...models.AlertInstance) error {
|
||||
@@ -57,8 +57,8 @@ func (f *FakeInstanceStore) DeleteAlertInstancesByRule(ctx context.Context, key
|
||||
|
||||
type FakeRuleReader struct{}
|
||||
|
||||
func (f *FakeRuleReader) ListAlertRules(_ context.Context, q *models.ListAlertRulesQuery) error {
|
||||
return nil
|
||||
func (f *FakeRuleReader) ListAlertRules(_ context.Context, q *models.ListAlertRulesQuery) (models.RulesGroup, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
type FakeHistorian struct {
|
||||
|
||||
Reference in New Issue
Block a user