(cycle int, trigger *types.Trigger)
| 316 | } |
| 317 | |
| 318 | func diffMethod(cycle int, trigger *types.Trigger) (*types.TriggerResultSet, error) { |
| 319 | trigger_result_set := &types.TriggerResultSet{TriggerResults: make([]*types.TriggerResult, 0), Triggered: false} |
| 320 | |
| 321 | results, err := tsdbClient.Query(fmt.Sprintf("%d", cycle), "", trigger.Tags, "sum", trigger.Metric, true) |
| 322 | if err != nil { |
| 323 | return nil, err |
| 324 | } |
| 325 | |
| 326 | for _, result := range results { |
| 327 | if len(result.Dps) == 0 { |
| 328 | continue |
| 329 | } |
| 330 | |
| 331 | values := make([]float64, 0) |
| 332 | for _, value := range result.Dps { |
| 333 | values = append(values, value) |
| 334 | } |
| 335 | |
| 336 | var current_threshold float64 = 0 |
| 337 | |
| 338 | if len(values) > 1 { |
| 339 | value_tmp := values[0] |
| 340 | for _, value := range values[1:] { |
| 341 | if value != value_tmp { |
| 342 | current_threshold = 1 |
| 343 | break |
| 344 | } |
| 345 | } |
| 346 | } |
| 347 | |
| 348 | parameters := make(map[string]interface{}, 8) |
| 349 | parameters["current_threshold"] = current_threshold |
| 350 | parameters["threshold"] = trigger.Threshold |
| 351 | expression := fmt.Sprintf("current_threshold %s threshold", trigger.Symbol) |
| 352 | trigger_result, err := compute(parameters, expression) |
| 353 | if err != nil { |
| 354 | return trigger_result_set, err |
| 355 | } |
| 356 | |
| 357 | if !trigger_result_set.Triggered && trigger_result { |
| 358 | trigger_result_set.Triggered = trigger_result |
| 359 | } |
| 360 | |
| 361 | trigger_result_set.TriggerResults = append(trigger_result_set.TriggerResults, types.NewTriggerResult(trigger.Index, result.Tags, result.AggregateTags, current_threshold, trigger_result)) |
| 362 | } |
| 363 | |
| 364 | return trigger_result_set, nil |
| 365 | } |
| 366 | |
| 367 | func nodataMethod(cycle int, trigger *types.Trigger) (*types.TriggerResultSet, error) { |
| 368 | trigger_result_set := &types.TriggerResultSet{TriggerResults: make([]*types.TriggerResult, 0), Triggered: false} |
no test coverage detected