@@ -2,13 +2,12 @@ package rules
22
33import (
44 "context"
5- "errors"
65 "fmt"
76 "regexp"
87 "time"
98
109 "github.com/grafana/loki/v3/pkg/logql/syntax"
11- pkgerrors "github.com/pkg/errors "
10+ "github.com/hashicorp/go-multierror "
1211 promv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
1312 "github.com/prometheus/prometheus/model/labels"
1413 "github.com/prometheus/prometheus/model/rulefmt"
@@ -111,7 +110,7 @@ func (c *Component) reconcileState(ctx context.Context) error {
111110 for ns , diff := range diffs {
112111 err = c .applyChanges (ctx , ns , diff )
113112 if err != nil {
114- result = errors . Join (result , err )
113+ result = multierror . Append (result , err )
115114 continue
116115 }
117116 }
@@ -223,19 +222,20 @@ func convertCRDRuleGroupToRuleGroup(crd promv1.PrometheusRuleSpec) ([]rulefmt.Ru
223222 return nil , err
224223 }
225224
225+ var result error
226226 groups , _ := rulefmt .Parse (buf )
227227 for _ , group := range groups .Groups {
228228 for _ , rule := range group .Rules {
229229 if _ , err := syntax .ParseExpr (rule .Expr .Value ); err != nil {
230230 if rule .Record .Value != "" {
231- err = errors . Join ( err , pkgerrors . Wrapf ( err , "could not parse expression for record '%s' in group '%s'" , rule .Record .Value , group .Name ))
231+ result = multierror . Append ( result , fmt . Errorf ( "could not parse expression for record '%s' in group '%s': %w " , rule .Record .Value , group .Name , err ))
232232 }
233- err = errors . Join ( err , pkgerrors . Wrapf ( err , "could not parse expression for alert '%s' in group '%s'" , rule .Alert .Value , group .Name ))
233+ result = multierror . Append ( result , fmt . Errorf ( "could not parse expression for alert '%s' in group '%s': %w " , rule .Alert .Value , group .Name , err ))
234234 }
235235 }
236236 }
237- if err != nil {
238- return nil , err
237+ if result != nil {
238+ return nil , result
239239 }
240240
241241 return groups .Groups , nil
0 commit comments