加入日志异常检测

This commit is contained in:
marvzhang
2020-04-19 10:32:36 +08:00
parent 3633331879
commit 59b42ddde2
7 changed files with 177 additions and 14 deletions

View File

@@ -127,6 +127,23 @@ func (t *Task) GetLogItems(keyword string, page int, pageSize int) (logItems []L
return logItems, logTotal, nil
}
func (t *Task) GetErrorLogItems() (errLogItems []ErrorLogItem, err error) {
s, c := database.GetCol("error_logs")
defer s.Close()
query := bson.M{
"task_id": t.Id,
}
if err := c.Find(query).All(&errLogItems); err != nil {
log.Errorf("find error logs error: " + err.Error())
debug.PrintStack()
return errLogItems, err
}
return errLogItems, nil
}
func GetTaskList(filter interface{}, skip int, limit int, sortKey string) ([]Task, error) {
s, c := database.GetCol("tasks")
defer s.Close()
@@ -390,6 +407,7 @@ func UpdateTaskResultCount(id string) (err error) {
return nil
}
// convert all running tasks to abnormal tasks
func UpdateTaskToAbnormal(nodeId bson.ObjectId) error {
s, c := database.GetCol("tasks")
defer s.Close()
@@ -411,3 +429,45 @@ func UpdateTaskToAbnormal(nodeId bson.ObjectId) error {
}
return nil
}
// update task error logs
func UpdateTaskErrorLogs(taskId string, errorRegexPattern string) error {
s, c := database.GetCol("logs")
defer s.Close()
if errorRegexPattern == "" {
errorRegexPattern = constants.ErrorRegexPattern
}
query := bson.M{
"task_id": taskId,
"msg": bson.M{
"$regex": bson.RegEx{
Pattern: errorRegexPattern,
Options: "i",
},
},
}
var logs []LogItem
if err := c.Find(query).All(&logs); err != nil {
log.Errorf("find error logs error: " + err.Error())
debug.PrintStack()
return err
}
for _, l := range logs {
e := ErrorLogItem{
Id: bson.NewObjectId(),
TaskId: l.TaskId,
Message: l.Message,
LogId: l.Id,
Seq: l.Seq,
Ts: time.Now(),
}
if err := AddErrorLogItem(e); err != nil {
return err
}
}
return nil
}