mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-02-09 15:27:11 +00:00
fix: fix vmalert template label not complete bug (#435)
Co-authored-by: xiaobeibei <xiaobeibei@bigo.sg>
This commit is contained in:
parent
d7c1ff8b0c
commit
eeadfccdc5
1 changed files with 18 additions and 2 deletions
|
@ -171,15 +171,31 @@ func (r *Rule) newAlert(m datasource.Metric) (*notifier.Alert, error) {
|
||||||
Start: time.Now(),
|
Start: time.Now(),
|
||||||
// TODO: support End time
|
// TODO: support End time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1. use data labels
|
||||||
for _, l := range m.Labels {
|
for _, l := range m.Labels {
|
||||||
a.Labels[l.Name] = l.Value
|
a.Labels[l.Name] = l.Value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2. template rule labels with data labels
|
||||||
|
rLabels, err := a.ExecTemplate(r.Labels)
|
||||||
|
if err != nil {
|
||||||
|
return a, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. merge data labels and rule labels
|
||||||
// metric labels may be overridden by
|
// metric labels may be overridden by
|
||||||
// rule labels
|
// rule labels
|
||||||
for k, v := range r.Labels {
|
for k, v := range rLabels {
|
||||||
a.Labels[k] = v
|
a.Labels[k] = v
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
|
// 4. template merged labels
|
||||||
|
a.Labels, err = a.ExecTemplate(a.Labels)
|
||||||
|
if err != nil {
|
||||||
|
return a, err
|
||||||
|
}
|
||||||
|
|
||||||
a.Annotations, err = a.ExecTemplate(r.Annotations)
|
a.Annotations, err = a.ExecTemplate(r.Annotations)
|
||||||
return a, err
|
return a, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue