diff --git a/src/modules/collector/sys/plugins/reader.go b/src/modules/collector/sys/plugins/reader.go index b8f2a3a8..28fc9837 100644 --- a/src/modules/collector/sys/plugins/reader.go +++ b/src/modules/collector/sys/plugins/reader.go @@ -2,7 +2,6 @@ package plugins import ( "io/ioutil" - "os" "path/filepath" "strconv" "strings" @@ -32,15 +31,9 @@ func ListPluginsFromMonapi() map[string]*Plugin { for _, p := range plugins { fpath := p.FilePath - fileInfo, err := os.Stat(fpath) - if err != nil { - logger.Warningf("plugin:%s get info err:%v", p.FilePath, err) - continue - } - plugin := &Plugin{ FilePath: fpath, - MTime: fileInfo.ModTime().Unix(), + MTime: p.LastUpdated.Unix(), Cycle: p.Step, Params: p.Params, } diff --git a/src/modules/collector/sys/plugins/scheduler.go b/src/modules/collector/sys/plugins/scheduler.go index cde42295..25478198 100644 --- a/src/modules/collector/sys/plugins/scheduler.go +++ b/src/modules/collector/sys/plugins/scheduler.go @@ -117,5 +117,9 @@ func PluginRun(plugin *Plugin) { return } + for i := 0; i < len(items); i++ { + items[i].Step = int64(plugin.Cycle) + } + funcs.Push(items) } diff --git a/src/modules/judge/judge/func.go b/src/modules/judge/judge/func.go index 09ea6004..51d4cc33 100644 --- a/src/modules/judge/judge/func.go +++ b/src/modules/judge/judge/func.go @@ -217,7 +217,7 @@ func (f NodataFunction) Compute(vs []*dataobj.HistoryData) (leftValue dataobj.Js return value.Value, false } } - return 0, true + return dataobj.JsonFloat(math.NaN()), true } type CAvgAbsFunction struct { diff --git a/src/modules/judge/judge/judge.go b/src/modules/judge/judge/judge.go index 11dbbb1e..00d737b8 100644 --- a/src/modules/judge/judge/judge.go +++ b/src/modules/judge/judge/judge.go @@ -5,6 +5,7 @@ import ( "container/list" "encoding/json" "fmt" + "math" "strconv" "strings" "sync" @@ -111,10 +112,14 @@ func Judge(stra *model.Stra, exps []model.Exp, historyData []*dataobj.HistoryDat }() leftValue, isTriggered = judgeItemWithStrategy(stra, historyData, exps[0], firstItem, now) + lastValue := "null" + if !math.IsNaN(float64(leftValue)) { + lastValue = strconv.FormatFloat(float64(leftValue), 'f', -1, 64) + } if value == "" { - value = fmt.Sprintf("%s: %v", exp.Metric, leftValue) + value = fmt.Sprintf("%s: %s", exp.Metric, lastValue) } else { - value += fmt.Sprintf("; %s: %v", exp.Metric, leftValue) + value += fmt.Sprintf("; %s: %s", exp.Metric, lastValue) } status = append(status, isTriggered)