mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-26 22:19:40 -08:00
Merge pull request #1497 from prometheus/fabxc/alerts
Remove old alerting syntax
This commit is contained in:
commit
a9168e60c4
|
@ -163,11 +163,6 @@ const (
|
|||
itemGroupLeft
|
||||
itemGroupRight
|
||||
itemBool
|
||||
// Old alerting syntax
|
||||
itemWith
|
||||
itemSummary
|
||||
itemRunbook
|
||||
itemDescription
|
||||
keywordsEnd
|
||||
)
|
||||
|
||||
|
@ -200,12 +195,6 @@ var key = map[string]itemType{
|
|||
"group_left": itemGroupLeft,
|
||||
"group_right": itemGroupRight,
|
||||
"bool": itemBool,
|
||||
|
||||
// Old alerting syntax.
|
||||
"with": itemWith,
|
||||
"summary": itemSummary,
|
||||
"runbook": itemRunbook,
|
||||
"description": itemDescription,
|
||||
}
|
||||
|
||||
// These are the default string representations for common items. It does not
|
||||
|
|
|
@ -263,18 +263,6 @@ var tests = []struct {
|
|||
}, {
|
||||
input: "annotations",
|
||||
expected: []item{{itemAnnotations, 0, "annotations"}},
|
||||
}, {
|
||||
input: "description",
|
||||
expected: []item{{itemDescription, 0, "description"}},
|
||||
}, {
|
||||
input: "summary",
|
||||
expected: []item{{itemSummary, 0, "summary"}},
|
||||
}, {
|
||||
input: "runbook",
|
||||
expected: []item{{itemRunbook, 0, "runbook"}},
|
||||
}, {
|
||||
input: "with",
|
||||
expected: []item{{itemWith, 0, "with"}},
|
||||
}, {
|
||||
input: "offset",
|
||||
expected: []item{{itemOffset, 0, "offset"}},
|
||||
|
|
|
@ -384,57 +384,17 @@ func (p *parser) alertStmt() *AlertStmt {
|
|||
}
|
||||
}
|
||||
|
||||
// Accepting WITH instead of LABELS is temporary compatibility
|
||||
// with the old alerting syntax.
|
||||
var (
|
||||
hasLabels bool
|
||||
oldSyntax bool
|
||||
labels = model.LabelSet{}
|
||||
annotations = model.LabelSet{}
|
||||
)
|
||||
if t := p.peek().typ; t == itemLabels {
|
||||
if p.peek().typ == itemLabels {
|
||||
p.expect(itemLabels, ctx)
|
||||
labels = p.labelSet()
|
||||
hasLabels = true
|
||||
} else if t == itemWith {
|
||||
p.expect(itemWith, ctx)
|
||||
labels = p.labelSet()
|
||||
oldSyntax = true
|
||||
}
|
||||
|
||||
// Only allow old annotation syntax if new label syntax isn't used.
|
||||
if !hasLabels {
|
||||
Loop:
|
||||
for {
|
||||
switch p.next().typ {
|
||||
case itemSummary:
|
||||
annotations["summary"] = model.LabelValue(p.unquoteString(p.expect(itemString, ctx).val))
|
||||
|
||||
case itemDescription:
|
||||
annotations["description"] = model.LabelValue(p.unquoteString(p.expect(itemString, ctx).val))
|
||||
|
||||
case itemRunbook:
|
||||
annotations["runbook"] = model.LabelValue(p.unquoteString(p.expect(itemString, ctx).val))
|
||||
|
||||
default:
|
||||
p.backup()
|
||||
break Loop
|
||||
}
|
||||
}
|
||||
if len(annotations) > 0 {
|
||||
oldSyntax = true
|
||||
}
|
||||
}
|
||||
|
||||
// Only allow new annotation syntax if WITH or old annotation
|
||||
// syntax weren't used.
|
||||
if !oldSyntax {
|
||||
if p.peek().typ == itemAnnotations {
|
||||
p.expect(itemAnnotations, ctx)
|
||||
annotations = p.labelSet()
|
||||
}
|
||||
} else {
|
||||
log.Warnf("Alerting rule with old syntax found. Support for this syntax will be removed with 0.18. Please update to the new syntax.")
|
||||
if p.peek().typ == itemAnnotations {
|
||||
p.expect(itemAnnotations, ctx)
|
||||
annotations = p.labelSet()
|
||||
}
|
||||
|
||||
return &AlertStmt{
|
||||
|
|
|
@ -1311,32 +1311,6 @@ var testStatement = []struct {
|
|||
Labels: model.LabelSet{"x": "", "a": "z"},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
input: `ALERT SomeName IF some_metric > 1
|
||||
WITH {}
|
||||
SUMMARY "Global request rate low"
|
||||
DESCRIPTION "The global request rate is low"
|
||||
`,
|
||||
expected: Statements{
|
||||
&AlertStmt{
|
||||
Name: "SomeName",
|
||||
Expr: &BinaryExpr{
|
||||
Op: itemGTR,
|
||||
LHS: &VectorSelector{
|
||||
Name: "some_metric",
|
||||
LabelMatchers: metric.LabelMatchers{
|
||||
{Type: metric.Equal, Name: model.MetricNameLabel, Value: "some_metric"},
|
||||
},
|
||||
},
|
||||
RHS: &NumberLiteral{1},
|
||||
},
|
||||
Labels: model.LabelSet{},
|
||||
Annotations: model.LabelSet{
|
||||
"summary": "Global request rate low",
|
||||
"description": "The global request rate is low",
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
input: `ALERT SomeName IF some_metric > 1
|
||||
LABELS {}
|
||||
|
|
Loading…
Reference in a new issue