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

Function diffMethod

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

Source from the content-addressed store, hash-verified

316}
317
318func 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
367func nodataMethod(cycle int, trigger *types.Trigger) (*types.TriggerResultSet, error) {
368 trigger_result_set := &types.TriggerResultSet{TriggerResults: make([]*types.TriggerResult, 0), Triggered: false}

Callers 1

processTaskMethod · 0.85

Calls 2

computeFunction · 0.85
QueryMethod · 0.65

Tested by

no test coverage detected