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

Method processTask

inspector/inspector.go:167–227  ·  view source on GitHub ↗
(task *types.AlarmTask)

Source from the content-addressed store, hash-verified

165}
166
167func (this *Inspector) processTask(task *types.AlarmTask) {
168 triggers_results := make(map[string]*types.TriggerResultSet)
169 parameters := make(map[string]interface{})
170 host_id := strings.SplitN(task.ID, "@", 2)[1]
171 error_message := ""
172 for index, trigger := range task.Triggers {
173 var trigger_result_set *types.TriggerResultSet
174 var err error
175 if trigger.Tags == "" {
176 trigger.Tags = fmt.Sprintf("uuid=%s", host_id)
177 } else {
178 trigger.Tags = fmt.Sprintf("%s,uuid=%s", trigger.Tags, host_id)
179 }
180 switch trigger.Method {
181 case MAX_METHOD:
182 trigger_result_set, err = maxMethod(task.Strategy.Cycle, trigger)
183 case MIN_METHOD:
184 trigger_result_set, err = minMethod(task.Strategy.Cycle, trigger)
185 case RATIO_METHOD:
186 trigger_result_set, err = ratioMethod(task.Strategy.Cycle, trigger)
187 case TOP_METHOD:
188 trigger_result_set, err = topMethod(task.Strategy.Cycle, trigger)
189 case BOTTOM_METHOD:
190 trigger_result_set, err = bottomMethod(task.Strategy.Cycle, trigger)
191 case LAST_METHOD:
192 trigger_result_set, err = lastMethod(task.Strategy.Cycle, trigger)
193 case DIFF_METHOD:
194 trigger_result_set, err = diffMethod(task.Strategy.Cycle, trigger)
195 case NODATA_METHOD:
196 trigger_result_set, err = nodataMethod(task.Strategy.Cycle, trigger)
197 case AVG_METHOD:
198 trigger_result_set, err = avgMethod(task.Strategy.Cycle, trigger)
199 default:
200 err = errors.New(fmt.Sprintf("trigger method %v not found", trigger.Method))
201 }
202
203 if err != nil {
204 error_message = err.Error()
205 break
206 }
207
208 if len(trigger_result_set.TriggerResults) == 0 {
209 error_message = "no data"
210 break
211 }
212 triggers_results[index] = trigger_result_set
213 parameters[index] = trigger_result_set.Triggered
214 }
215
216 result := false
217 if error_message == "" {
218 compute_result, err := compute(parameters, task.Strategy.Expression)
219 if err != nil {
220 error_message = err.Error()
221 }
222 result = compute_result
223 }
224

Callers 1

taskWorkerMethod · 0.95

Calls 11

maxMethodFunction · 0.85
minMethodFunction · 0.85
ratioMethodFunction · 0.85
topMethodFunction · 0.85
bottomMethodFunction · 0.85
lastMethodFunction · 0.85
diffMethodFunction · 0.85
nodataMethodFunction · 0.85
avgMethodFunction · 0.85
computeFunction · 0.85
PutResultMethod · 0.80

Tested by

no test coverage detected