From 8f79470ca91f49f1492e8a92527251d461cc65ae Mon Sep 17 00:00:00 2001 From: machine424 Date: Mon, 25 Aug 2025 16:32:34 +0200 Subject: [PATCH] fix(notifier): create a new alert when relabeling alters labels Signed-off-by: machine424 --- notifier/alert.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/notifier/alert.go b/notifier/alert.go index 88245c9a7f..83e7a97fe0 100644 --- a/notifier/alert.go +++ b/notifier/alert.go @@ -84,7 +84,18 @@ func relabelAlerts(relabelConfigs []*relabel.Config, externalLabels labels.Label if !keep { continue } - a.Labels = lb.Labels() + + // If relabeling has altered the labels, create a new Alert to preserve immutability. + if !labels.Equal(a.Labels, lb.Labels()) { + a = &Alert{ + Labels: lb.Labels(), + Annotations: a.Annotations, + StartsAt: a.StartsAt, + EndsAt: a.EndsAt, + GeneratorURL: a.GeneratorURL, + } + } + relabeledAlerts = append(relabeledAlerts, a) } return relabeledAlerts