// Process the input metric. // // 1. Match metric with rules. // 2. Detect the metric with matched rules. // func (d *Detector) process(m *models.Metric) { health.IncrNumMetricIncomed(1) timer := util.NewTimer() // Match ok, rules := d.match(m) if !ok { // Not matched. return } // Detect err := d.detect(m, rules) if err != nil { log.Error("detect: %v, skipping..", err) return } health.IncrNumMetricDetected(1) // Output if len(m.TestedRules) > 0 { // Test ok. d.output(m) } // Time end. elapsed := timer.Elapsed() if elapsed > timeout { log.Warn("detection is slow: %.2fms", elapsed) } health.AddDetectionCost(elapsed) }
// process the input metric. // Steps: // 1. Match metric with all rules. // 2. Detect the metric with matched rules. // 3. Output detection results to receivers. func (d *Detector) process(m *models.Metric, shouldAdjustIdle bool) { health.IncrNumMetricIncomed(1) timer := util.NewTimer() // Detection cost timer // Match ok, rules := d.match(m) if !ok { return } if shouldAdjustIdle { d.adjustIdleM(m, rules) } // Detect evs, err := d.detect(m, rules) if err != nil { log.Errorf("detect: %v, skipping..", err) return } health.IncrNumMetricDetected(1) // Output for _, ev := range evs { d.output(ev) } // Time end. elapsed := timer.Elapsed() if elapsed > float64(d.cfg.Detector.WarningTimeout) { log.Warnf("detection is slow: %.2fms", elapsed) } health.AddDetectionCost(elapsed) }
// Process the input metric. // // 1. Match metric with rules. // 2. Detect the metric with matched rules. // func (d *Detector) process(m *models.Metric) { health.IncrNumMetricIncomed(1) // Time it. startAt := time.Now() // Match ok, rules := d.match(m) if !ok { // Not matched. return } // Detect err := d.detect(m, rules) if err != nil { log.Error("detect: %v, skipping..", err) return } health.IncrNumMetricDetected(1) // Output if len(m.TestedRules) > 0 { // Test ok. d.output(m) } // Time end. elapsed := float64(time.Since(startAt).Nanoseconds()) / float64(1000*1000) if elapsed > timeout { log.Warn("detection is slow: %.2fms", elapsed) } health.AddDetectionCost(elapsed) }