Correctly handle on() in alerts. (#2096)

Fixes #2082
This commit is contained in:
Brian Brazil 2016-10-19 18:38:26 +01:00 committed by beorn7
parent 223a22457f
commit e1cfc994f7
2 changed files with 12 additions and 1 deletions

View File

@ -163,7 +163,7 @@ func (node *BinaryExpr) String() string {
matching := ""
vm := node.VectorMatching
if vm != nil && len(vm.MatchingLabels) > 0 {
if vm != nil && (len(vm.MatchingLabels) > 0 || vm.On) {
if vm.On {
matching = fmt.Sprintf(" ON(%s)", vm.MatchingLabels)
} else {

View File

@ -59,6 +59,10 @@ func TestExprString(t *testing.T) {
inputs := []struct {
in, out string
}{
{
in: `sum(task:errors:rate10s{job="s"}) BY ()`,
out: `sum(task:errors:rate10s{job="s"})`,
},
{
in: `sum(task:errors:rate10s{job="s"}) BY (code)`,
},
@ -77,6 +81,9 @@ func TestExprString(t *testing.T) {
{
in: `count_values("value", task:errors:rate10s{job="s"})`,
},
{
in: `a - ON() c`,
},
{
in: `a - ON(b) c`,
},
@ -92,6 +99,10 @@ func TestExprString(t *testing.T) {
{
in: `a - IGNORING(b) c`,
},
{
in: `a - IGNORING() c`,
out: `a - c`,
},
{
in: `up > BOOL 0`,
},