func SecureRule()

in prometheus/alert/alert_rule.go [88:105]


func SecureRule(restrictQueries bool, matcherName, matcherValue string, rule *rulefmt.Rule) error {
	expr := rule.Expr
	var err error
	if restrictQueries {
		queryRestrictor := restrictor.NewQueryRestrictor(restrictor.DefaultOpts).AddMatcher(matcherName, matcherValue)
		expr, err = queryRestrictor.RestrictQuery(rule.Expr)
		if err != nil {
			return err
		}
	}

	rule.Expr = expr
	if rule.Labels == nil {
		rule.Labels = make(map[string]string)
	}
	rule.Labels[matcherName] = matcherValue
	return nil
}