| | |
| | | // 判断有无此规则组的定时器 |
| | | flag := false |
| | | for k,_ := range TimeEleList { |
| | | logger.Debug("-----------------看看这个key和groupId",k,groupId) |
| | | if strings.Contains(k, groupId) { |
| | | flag = true |
| | | } |
| | |
| | | if result { // 结果为真 |
| | | for k, timeEle := range TimeEleList { |
| | | if strings.Contains(k, groupId) { |
| | | if timeEle.N == 0 && timeEle.AlarmFlag { |
| | | logger.Debug("-------------------------符合持续时间规则但并不是首次,不报警") |
| | | flagTime = "11" |
| | | args.RuleResult["timeLabel"] = flagTime |
| | | } |
| | | if timeEle.N == 0 && !timeEle.AlarmFlag { // 这组规则的定时器要全部等于0 暂且认为一组规则只有一个定时器 |
| | | logger.Debug("———————————-------------首次符合持续时间规则并报警") |
| | | flagTime = "10" |
| | |
| | | args.RuleResult["cacheData"] = timeEle.CacheSdkData |
| | | args.RuleResult["timeLabel"] = flagTime |
| | | } |
| | | if timeEle.N == 0 && timeEle.AlarmFlag { |
| | | logger.Debug("-------------------------符合持续时间规则但并不是首次,不报警") |
| | | flagTime = "11" |
| | | args.RuleResult["timeLabel"] = flagTime |
| | | } |
| | | if timeEle.N != 0 { |
| | | flagTime = "00" |
| | | logger.Debug("------------------------结果为真但计数器不到0,不报警,此时的计数器的值为:",timeEle.N) |
| | | } |
| | | } |
| | | } |
| | | } else { // 结果为假 |
| | | for k, timeEle := range TimeEleList { |
| | | if strings.Contains(k, groupId) { |
| | | logger.Debug("------------------------------重置定时器,此时的计数器的值为",timeEle.N) |
| | | timeEle.N = timeEle.InitN // 重置定时器 |
| | | timeEle.CacheSdkData = SdkDatas{} // 把缓存数据扔了 |
| | | flagTime = "12" |
| | | logger.Debug("------------------------------重置定时器") |
| | | } |
| | | } |
| | | |
| | | } |
| | | } else { |
| | | } else { // 无定时器 |
| | | if result { |
| | | flagTime = "01" |
| | | } else { |
| | |
| | | } |
| | | // 先清空过滤后的数据,再往里塞本次过滤后的数据 |
| | | am.filterData = am.filterData[0:0] |
| | | logger.Debug("看看args:::::",args) |
| | | for _, arg := range args { |
| | | var formula string |
| | | if rule.SdkArgAlias == "score" { |