rename severity to priority
This commit is contained in:
parent
a7cc47ec0b
commit
62d10346cc
|
@ -24,9 +24,9 @@ type ConditionItem struct {
|
||||||
//MetricName string `json:"metric"`
|
//MetricName string `json:"metric"`
|
||||||
MinimumPeriodMatch int `json:"minimum_period_match"`
|
MinimumPeriodMatch int `json:"minimum_period_match"`
|
||||||
Operator string `json:"operator"`
|
Operator string `json:"operator"`
|
||||||
Values []string `json:"values"`
|
Values []string `json:"values"`
|
||||||
Severity string `json:"severity"`
|
Priority string `json:"priority"`
|
||||||
Expression string `json:"expression,omitempty"`
|
Expression string `json:"expression,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cond *ConditionItem) GenerateConditionExpression()(conditionExpression string, err error){
|
func (cond *ConditionItem) GenerateConditionExpression()(conditionExpression string, err error){
|
||||||
|
@ -68,9 +68,7 @@ type ConditionResultItem struct {
|
||||||
RelationValues map[string]interface{} `json:"relation_values"`
|
RelationValues map[string]interface{} `json:"relation_values"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Severity string
|
var PriorityWeights = map[string]int{
|
||||||
|
|
||||||
var SeverityWeights = map[string]int{
|
|
||||||
"info": 1,
|
"info": 1,
|
||||||
"low": 2,
|
"low": 2,
|
||||||
"medium": 3,
|
"medium": 3,
|
||||||
|
|
|
@ -55,7 +55,7 @@ func TestCreateRule( t *testing.T) {
|
||||||
//Conditions: Condition{
|
//Conditions: Condition{
|
||||||
// Operator: "any",
|
// Operator: "any",
|
||||||
// Items: []ConditionItem{
|
// Items: []ConditionItem{
|
||||||
// { MinimumPeriodMatch: 1, Operator: "gte", Values: []string{"1"}, Severity: "error", AlertMessage: "集群健康状态为 Red"},
|
// { MinimumPeriodMatch: 1, Operator: "gte", Values: []string{"1"}, Priority: "error", AlertMessage: "集群健康状态为 Red"},
|
||||||
// },
|
// },
|
||||||
//},
|
//},
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ func TestCreateRule( t *testing.T) {
|
||||||
Conditions: Condition{
|
Conditions: Condition{
|
||||||
Operator: "any",
|
Operator: "any",
|
||||||
Items: []ConditionItem{
|
Items: []ConditionItem{
|
||||||
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"76"}, Severity: "error", Message: "磁盘可用率小于10%"},
|
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"76"}, Priority: "error", Message: "磁盘可用率小于10%"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -152,7 +152,7 @@ func (h *AlertAPI) getAlertStats(w http.ResponseWriter, req *http.Request, ps ht
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for severity, _ := range alerting.SeverityWeights {
|
for severity, _ := range alerting.PriorityWeights {
|
||||||
if _, ok := severityAlerts[severity]; !ok {
|
if _, ok := severityAlerts[severity]; !ok {
|
||||||
severityAlerts[severity] = 0
|
severityAlerts[severity] = 0
|
||||||
}
|
}
|
||||||
|
|
|
@ -865,7 +865,7 @@ func getRuleMetricData( rule *alerting.Rule, filterParam *alerting.FilterParam)
|
||||||
// Conditions: alerting.Condition{
|
// Conditions: alerting.Condition{
|
||||||
// Operator: "any",
|
// Operator: "any",
|
||||||
// Items: []alerting.ConditionItem{
|
// Items: []alerting.ConditionItem{
|
||||||
// {MinimumPeriodMatch: 5, Operator: "gte", Values: []string{"90"}, Severity: "error", AlertMessage: "cpu使用率大于90%"},
|
// {MinimumPeriodMatch: 5, Operator: "gte", Values: []string{"90"}, Priority: "error", AlertMessage: "cpu使用率大于90%"},
|
||||||
// },
|
// },
|
||||||
// },
|
// },
|
||||||
//
|
//
|
||||||
|
|
|
@ -513,7 +513,7 @@ func (engine *Engine) CheckCondition(rule *alerting.Rule)(*alerting.ConditionRes
|
||||||
for idx, targetData := range targetMetricData {
|
for idx, targetData := range targetMetricData {
|
||||||
if idx == 0 {
|
if idx == 0 {
|
||||||
sort.Slice(rule.Conditions.Items, func(i, j int) bool {
|
sort.Slice(rule.Conditions.Items, func(i, j int) bool {
|
||||||
return alerting.SeverityWeights[rule.Conditions.Items[i].Severity] > alerting.SeverityWeights[rule.Conditions.Items[j].Severity]
|
return alerting.PriorityWeights[rule.Conditions.Items[i].Priority] > alerting.PriorityWeights[rule.Conditions.Items[j].Priority]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
LoopCondition:
|
LoopCondition:
|
||||||
|
@ -669,11 +669,11 @@ func (engine *Engine) Do(rule *alerting.Rule) error {
|
||||||
alertItem.State = alerting.AlertStateAlerting
|
alertItem.State = alerting.AlertStateAlerting
|
||||||
|
|
||||||
var (
|
var (
|
||||||
severity = conditionResults[0].ConditionItem.Severity
|
severity = conditionResults[0].ConditionItem.Priority
|
||||||
)
|
)
|
||||||
for _, conditionResult := range conditionResults {
|
for _, conditionResult := range conditionResults {
|
||||||
if alerting.SeverityWeights[severity] < alerting.SeverityWeights[conditionResult.ConditionItem.Severity] {
|
if alerting.PriorityWeights[severity] < alerting.PriorityWeights[conditionResult.ConditionItem.Priority] {
|
||||||
severity = conditionResult.ConditionItem.Severity
|
severity = conditionResult.ConditionItem.Priority
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
paramsCtx = newParameterCtx(rule, checkResults, util.MapStr{
|
paramsCtx = newParameterCtx(rule, checkResults, util.MapStr{
|
||||||
|
@ -826,9 +826,9 @@ func newParameterCtx(rule *alerting.Rule, checkResults *alerting.ConditionResult
|
||||||
severity string
|
severity string
|
||||||
)
|
)
|
||||||
if len(checkResults.ResultItems) > 0 {
|
if len(checkResults.ResultItems) > 0 {
|
||||||
severity = checkResults.ResultItems[0].ConditionItem.Severity
|
severity = checkResults.ResultItems[0].ConditionItem.Priority
|
||||||
sort.Slice(checkResults.ResultItems, func(i, j int) bool {
|
sort.Slice(checkResults.ResultItems, func(i, j int) bool {
|
||||||
if alerting.SeverityWeights[checkResults.ResultItems[i].ConditionItem.Severity] > alerting.SeverityWeights[checkResults.ResultItems[j].ConditionItem.Severity] {
|
if alerting.PriorityWeights[checkResults.ResultItems[i].ConditionItem.Priority] > alerting.PriorityWeights[checkResults.ResultItems[j].ConditionItem.Priority] {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -851,7 +851,7 @@ func newParameterCtx(rule *alerting.Rule, checkResults *alerting.ConditionResult
|
||||||
}
|
}
|
||||||
conditionParams = append(conditionParams, util.MapStr{
|
conditionParams = append(conditionParams, util.MapStr{
|
||||||
alerting2.ParamThreshold: resultItem.ConditionItem.Values,
|
alerting2.ParamThreshold: resultItem.ConditionItem.Values,
|
||||||
alerting2.Severity: resultItem.ConditionItem.Severity,
|
alerting2.Severity: resultItem.ConditionItem.Priority,
|
||||||
alerting2.ParamGroupValues: resultItem.GroupValues,
|
alerting2.ParamGroupValues: resultItem.GroupValues,
|
||||||
alerting2.ParamIssueTimestamp: resultItem.IssueTimestamp,
|
alerting2.ParamIssueTimestamp: resultItem.IssueTimestamp,
|
||||||
alerting2.ParamResultValue: resultItem.ResultValue,
|
alerting2.ParamResultValue: resultItem.ResultValue,
|
||||||
|
|
|
@ -65,8 +65,8 @@ func TestEngine( t *testing.T) {
|
||||||
Conditions: alerting.Condition{
|
Conditions: alerting.Condition{
|
||||||
Operator: "any",
|
Operator: "any",
|
||||||
Items: []alerting.ConditionItem{
|
Items: []alerting.ConditionItem{
|
||||||
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"10"}, Severity: "error"},
|
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"10"}, Priority: "error"},
|
||||||
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"20"}, Severity: "warning"},
|
{MinimumPeriodMatch: 1, Operator: "lte", Values: []string{"20"}, Priority: "warning"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ func TestEngine( t *testing.T) {
|
||||||
// t.Fatal(err)
|
// t.Fatal(err)
|
||||||
//}
|
//}
|
||||||
sort.Slice(rule.Conditions.Items, func(i, j int) bool {
|
sort.Slice(rule.Conditions.Items, func(i, j int) bool {
|
||||||
return alerting.SeverityWeights[rule.Conditions.Items[i].Severity] > alerting.SeverityWeights[rule.Conditions.Items[j].Severity]
|
return alerting.PriorityWeights[rule.Conditions.Items[i].Priority] > alerting.PriorityWeights[rule.Conditions.Items[j].Priority]
|
||||||
})
|
})
|
||||||
fmt.Println(rule.Conditions.Items)
|
fmt.Println(rule.Conditions.Items)
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ func TestGeneratePercentilesAggQuery(t *testing.T) {
|
||||||
// Conditions: alerting.Condition{
|
// Conditions: alerting.Condition{
|
||||||
// Operator: "any",
|
// Operator: "any",
|
||||||
// Items: []alerting.ConditionItem{
|
// Items: []alerting.ConditionItem{
|
||||||
// {MinimumPeriodMatch: 5, Operator: "gte", Values: []string{"90"}, Severity: "error", AlertMessage: "cpu使用率大于90%"},
|
// {MinimumPeriodMatch: 5, Operator: "gte", Values: []string{"90"}, Priority: "error", AlertMessage: "cpu使用率大于90%"},
|
||||||
// },
|
// },
|
||||||
// },
|
// },
|
||||||
//
|
//
|
||||||
|
@ -212,7 +212,7 @@ func TestGeneratePercentilesAggQuery(t *testing.T) {
|
||||||
Conditions: alerting.Condition{
|
Conditions: alerting.Condition{
|
||||||
Operator: "any",
|
Operator: "any",
|
||||||
Items: []alerting.ConditionItem{
|
Items: []alerting.ConditionItem{
|
||||||
{MinimumPeriodMatch: 1, Operator: "gte", Values: []string{"10"}, Severity: "warning"},
|
{MinimumPeriodMatch: 1, Operator: "gte", Values: []string{"10"}, Priority: "warning"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue