in core/hotspot/rule_manager.go [390:413]
func IsValidRule(rule *Rule) error {
if rule == nil {
return errors.New("nil hotspot Rule")
}
if len(rule.Resource) == 0 {
return errors.New("empty resource name")
}
if rule.Threshold < 0 {
return errors.New("negative threshold")
}
if rule.MetricType < 0 {
return errors.New("invalid metric type")
}
if rule.ControlBehavior < 0 {
return errors.New("invalid control strategy")
}
if rule.MetricType == QPS && rule.DurationInSec <= 0 {
return errors.New("invalid duration")
}
if rule.ParamIndex > 0 && rule.ParamKey != "" {
return errors.New("invalid param index and param key are mutually exclusive")
}
return checkControlBehaviorField(rule)
}