Merge pull request #1447 from prometheus/fabxc/alertfix

Make copying alerting state safer.
This commit is contained in:
Fabian Reinartz 2016-03-02 12:25:19 +01:00
commit 6adf77e411
2 changed files with 10 additions and 2 deletions

View File

@ -110,6 +110,10 @@ func (rule *AlertingRule) Name() string {
return rule.name
}
func (r *AlertingRule) equal(o *AlertingRule) bool {
return r.name == o.name && r.labels.Equal(o.labels)
}
func (r *AlertingRule) sample(alert *Alert, ts model.Time, set bool) *model.Sample {
metric := model.Metric(r.labels.Clone())

View File

@ -212,8 +212,12 @@ func (g *Group) copyState(from *Group) {
if !ok {
continue
}
if far.Name() == ar.Name() {
ar.active = far.active
// TODO(fabxc): forbid same alert definitions that are not unique by
// at least on static label or alertname?
if far.equal(ar) {
for fp, a := range far.active {
ar.active[fp] = a
}
}
}
}