Alerting: Use consts from alerting package (#61241)
This commit is contained in:
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/prometheus/alertmanager/api/v2/models"
|
||||
"github.com/prometheus/common/model"
|
||||
|
||||
alertingModels "github.com/grafana/alerting/alerting/models"
|
||||
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/eval"
|
||||
ngModels "github.com/grafana/grafana/pkg/services/ngalert/models"
|
||||
@@ -40,28 +41,28 @@ func stateToPostableAlert(alertState *state.State, appURL *url.URL) *models.Post
|
||||
// encode the values as JSON where it will be expanded later
|
||||
if len(alertState.Values) > 0 {
|
||||
if b, err := json.Marshal(alertState.Values); err == nil {
|
||||
nA[ngModels.ValuesAnnotation] = string(b)
|
||||
nA[alertingModels.ValuesAnnotation] = string(b)
|
||||
}
|
||||
}
|
||||
|
||||
if alertState.LastEvaluationString != "" {
|
||||
nA[ngModels.ValueStringAnnotation] = alertState.LastEvaluationString
|
||||
nA[alertingModels.ValueStringAnnotation] = alertState.LastEvaluationString
|
||||
}
|
||||
|
||||
if alertState.Image != nil {
|
||||
nA[ngModels.ImageTokenAnnotation] = alertState.Image.Token
|
||||
nA[alertingModels.ImageTokenAnnotation] = alertState.Image.Token
|
||||
}
|
||||
|
||||
if alertState.StateReason != "" {
|
||||
nA[ngModels.StateReasonAnnotation] = alertState.StateReason
|
||||
nA[alertingModels.StateReasonAnnotation] = alertState.StateReason
|
||||
}
|
||||
|
||||
if alertState.OrgID != 0 {
|
||||
nA[ngModels.OrgIDAnnotation] = strconv.FormatInt(alertState.OrgID, 10)
|
||||
nA[alertingModels.OrgIDAnnotation] = strconv.FormatInt(alertState.OrgID, 10)
|
||||
}
|
||||
|
||||
var urlStr string
|
||||
if uid := nL[ngModels.RuleUIDLabel]; len(uid) > 0 && appURL != nil {
|
||||
if uid := nL[alertingModels.RuleUIDLabel]; len(uid) > 0 && appURL != nil {
|
||||
u := *appURL
|
||||
u.Path = path.Join(u.Path, fmt.Sprintf("/alerting/grafana/%s/view", uid))
|
||||
urlStr = u.String()
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/prometheus/common/model"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
alertingModels "github.com/grafana/alerting/alerting/models"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/eval"
|
||||
ngModels "github.com/grafana/grafana/pkg/services/ngalert/models"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/state"
|
||||
@@ -57,7 +58,7 @@ func Test_stateToPostableAlert(t *testing.T) {
|
||||
t.Run("it generates proper URL", func(t *testing.T) {
|
||||
t.Run("to alert rule", func(t *testing.T) {
|
||||
alertState := randomState(tc.state)
|
||||
alertState.Labels[ngModels.RuleUIDLabel] = alertState.AlertRuleUID
|
||||
alertState.Labels[alertingModels.RuleUIDLabel] = alertState.AlertRuleUID
|
||||
result := stateToPostableAlert(alertState, appURL)
|
||||
u := *appURL
|
||||
u.Path = u.Path + "/alerting/grafana/" + alertState.AlertRuleUID + "/view"
|
||||
@@ -66,18 +67,18 @@ func Test_stateToPostableAlert(t *testing.T) {
|
||||
|
||||
t.Run("app URL as is if rule UID is not specified", func(t *testing.T) {
|
||||
alertState := randomState(tc.state)
|
||||
alertState.Labels[ngModels.RuleUIDLabel] = ""
|
||||
alertState.Labels[alertingModels.RuleUIDLabel] = ""
|
||||
result := stateToPostableAlert(alertState, appURL)
|
||||
require.Equal(t, appURL.String(), result.Alert.GeneratorURL.String())
|
||||
|
||||
delete(alertState.Labels, ngModels.RuleUIDLabel)
|
||||
delete(alertState.Labels, alertingModels.RuleUIDLabel)
|
||||
result = stateToPostableAlert(alertState, appURL)
|
||||
require.Equal(t, appURL.String(), result.Alert.GeneratorURL.String())
|
||||
})
|
||||
|
||||
t.Run("empty string if app URL is not provided", func(t *testing.T) {
|
||||
alertState := randomState(tc.state)
|
||||
alertState.Labels[ngModels.RuleUIDLabel] = alertState.AlertRuleUID
|
||||
alertState.Labels[alertingModels.RuleUIDLabel] = alertState.AlertRuleUID
|
||||
result := stateToPostableAlert(alertState, nil)
|
||||
require.Equal(t, "", result.Alert.GeneratorURL.String())
|
||||
})
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
prometheusModel "github.com/prometheus/common/model"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
|
||||
alertingModels "github.com/grafana/alerting/alerting/models"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
@@ -517,9 +518,9 @@ func (sch *schedule) stopApplied(alertDefKey ngmodels.AlertRuleKey) {
|
||||
func (sch *schedule) getRuleExtraLabels(evalCtx *evaluation) map[string]string {
|
||||
extraLabels := make(map[string]string, 4)
|
||||
|
||||
extraLabels[ngmodels.NamespaceUIDLabel] = evalCtx.rule.NamespaceUID
|
||||
extraLabels[alertingModels.NamespaceUIDLabel] = evalCtx.rule.NamespaceUID
|
||||
extraLabels[prometheusModel.AlertNameLabel] = evalCtx.rule.Title
|
||||
extraLabels[ngmodels.RuleUIDLabel] = evalCtx.rule.UID
|
||||
extraLabels[alertingModels.RuleUIDLabel] = evalCtx.rule.UID
|
||||
|
||||
if !sch.disableGrafanaFolder {
|
||||
extraLabels[ngmodels.FolderTitleLabel] = evalCtx.folderTitle
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
alertingModels "github.com/grafana/alerting/alerting/models"
|
||||
"github.com/grafana/grafana/pkg/expr"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
@@ -243,8 +244,8 @@ func TestSchedule_ruleRoutine(t *testing.T) {
|
||||
t.Run("it should add extra labels", func(t *testing.T) {
|
||||
states := sch.stateManager.GetStatesForRuleUID(rule.OrgID, rule.UID)
|
||||
for _, s := range states {
|
||||
assert.Equal(t, rule.UID, s.Labels[models.RuleUIDLabel])
|
||||
assert.Equal(t, rule.NamespaceUID, s.Labels[models.NamespaceUIDLabel])
|
||||
assert.Equal(t, rule.UID, s.Labels[alertingModels.RuleUIDLabel])
|
||||
assert.Equal(t, rule.NamespaceUID, s.Labels[alertingModels.NamespaceUIDLabel])
|
||||
assert.Equal(t, rule.Title, s.Labels[prometheusModel.AlertNameLabel])
|
||||
assert.Equal(t, folderTitle, s.Labels[models.FolderTitleLabel])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user