fix case-insensitive keyword query for alerting
Signed-off-by: junotx <junotxiang@yunify.com>
This commit is contained in:
@@ -192,7 +192,7 @@ func (q *AlertingRuleQueryParams) Filter(rules []*GettableAlertingRule) []*Getta
|
||||
}
|
||||
|
||||
func (q *AlertingRuleQueryParams) matches(rule *GettableAlertingRule) bool {
|
||||
if q.NameContainFilter != "" && !strings.Contains(rule.Name, q.NameContainFilter) {
|
||||
if q.NameContainFilter != "" && !containsI(rule.Name, q.NameContainFilter) {
|
||||
return false
|
||||
}
|
||||
if q.State != "" && q.State != rule.State {
|
||||
@@ -210,7 +210,7 @@ func (q *AlertingRuleQueryParams) matches(rule *GettableAlertingRule) bool {
|
||||
}
|
||||
}
|
||||
for k, v := range q.LabelContainFilters {
|
||||
if fv, ok := rule.Labels[k]; !ok || !strings.Contains(fv, v) {
|
||||
if fv, ok := rule.Labels[k]; !ok || !containsI(fv, v) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
@@ -340,7 +340,7 @@ func (q *AlertQueryParams) matches(alert *Alert) bool {
|
||||
}
|
||||
}
|
||||
for k, v := range q.LabelContainFilters {
|
||||
if fv, ok := alert.Labels[k]; !ok || !strings.Contains(fv, v) {
|
||||
if fv, ok := alert.Labels[k]; !ok || !containsI(fv, v) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
@@ -526,3 +526,10 @@ func NewBulkItemErrorServerResponse(ruleName string, err error) *BulkItemRespons
|
||||
Error: err,
|
||||
}
|
||||
}
|
||||
|
||||
// containsI reports whether substr is case-insensitive within s.
|
||||
func containsI(s, substr string) bool {
|
||||
return strings.Contains(
|
||||
strings.ToLower(s),
|
||||
strings.ToLower(substr))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user