MCPcopy Create free account
hub / github.com/TalkingData/owl / avgMethod

Function avgMethod

inspector/compute.go:415–446  ·  view source on GitHub ↗
(cycle int, trigger *types.Trigger)

Source from the content-addressed store, hash-verified

413}
414
415func avgMethod(cycle int, trigger *types.Trigger) (*types.TriggerResultSet, error) {
416 trigger_result_set := &types.TriggerResultSet{TriggerResults: make([]*types.TriggerResult, 0), Triggered: false}
417
418 results, err := tsdbClient.Query(fmt.Sprintf("%d", cycle), "", trigger.Tags, "sum", trigger.Metric, true)
419 if err != nil {
420 return nil, err
421 }
422
423 for _, result := range results {
424 if len(result.Dps) == 0 {
425 continue
426 }
427
428 parameters := make(map[string]interface{}, 8)
429 current_threshold := avg(result.Dps)
430 parameters["current_threshold"] = current_threshold
431 parameters["threshold"] = trigger.Threshold
432 expression := fmt.Sprintf("current_threshold %s threshold", trigger.Symbol)
433 trigger_result, err := compute(parameters, expression)
434 if err != nil {
435 return trigger_result_set, err
436 }
437
438 if !trigger_result_set.Triggered && trigger_result {
439 trigger_result_set.Triggered = trigger_result
440 }
441
442 trigger_result_set.TriggerResults = append(trigger_result_set.TriggerResults, types.NewTriggerResult(trigger.Index, result.Tags, result.AggregateTags, current_threshold, trigger_result))
443 }
444
445 return trigger_result_set, nil
446}
447
448func compute(params map[string]interface{}, express string) (bool, error) {
449 expression, err := govaluate.NewEvaluableExpression(express)

Callers 1

processTaskMethod · 0.85

Calls 3

avgFunction · 0.85
computeFunction · 0.85
QueryMethod · 0.65

Tested by

no test coverage detected