diff --git a/cmd/agent/signal/signalMonitor.go b/cmd/agent/signal/signalMonitor.go index 8911bcaa398ee1d6e9cd4e6ecc63b452417ba029..9d2ba2327537c0dd3361e0ce00c310e003f03a30 100644 --- a/cmd/agent/signal/signalMonitor.go +++ b/cmd/agent/signal/signalMonitor.go @@ -16,6 +16,7 @@ func SignalMonitoring() { for s := range ch { switch s { case syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT: + global.ERManager.ErrorTransmit("signal", "info", errors.New("signal interrupt"), false, false) global.ERManager.ResourceRelease() os.Exit(1) default: diff --git a/cmd/server/db/dbmanager.go b/cmd/server/db/dbmanager.go index d77bb81da9b4d037af0e1cdbf707ad6e3bc84493..8661cb8749ef1bfacffa3d3366c71d8e03f03eaa 100644 --- a/cmd/server/db/dbmanager.go +++ b/cmd/server/db/dbmanager.go @@ -11,7 +11,6 @@ import ( "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/db/mysqlmanager" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/db/redismanager" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" - "gitee.com/openeuler/PilotGo/sdk/logger" ) func InitDB() { @@ -46,9 +45,9 @@ func initGraphDB() { } if graphmanager.Global_GraphDB != nil { - logger.Debug("graph database initialization successful") + global.ERManager.ErrorTransmit("db", "debug", errors.New("graph database initialization successful"), false, false) } else { - logger.Error("graph database initialization failed") + global.ERManager.ErrorTransmit("db", "error", errors.New("graph database initialization failed"), false, false) } } @@ -56,27 +55,27 @@ func initGraphDB() { func initRedis() { redismanager.Global_Redis = redismanager.RedisInit(conf.Global_Config.Redis.Addr, conf.Global_Config.Redis.Password, conf.Global_Config.Redis.DB, conf.Global_Config.Redis.DialTimeout) if redismanager.Global_Redis != nil { - logger.Debug("redis database initialization successful") + global.ERManager.ErrorTransmit("db", "debug", errors.New("redis database initialization successful"), false, false) } else { - logger.Error("redis database initialization failed") + global.ERManager.ErrorTransmit("db", "error", errors.New("redis database initialization failed"), false, false) } } func initMysql() { mysqlmanager.Global_Mysql = mysqlmanager.MysqldbInit(conf.Global_Config.Mysql) if mysqlmanager.Global_Mysql != nil { - logger.Debug("mysql database initialization successful") + global.ERManager.ErrorTransmit("db", "debug", errors.New("mysql database initialization successful"), false, false) } else { - logger.Error("mysql database initialization failed") + global.ERManager.ErrorTransmit("db", "error", errors.New("mysql database initialization failed"), false, false) } } func initInflux() { influxmanager.Global_Influx = influxmanager.InfluxdbInit(conf.Global_Config.Influx) if influxmanager.Global_Influx != nil { - logger.Debug("influx database initialization successful") + global.ERManager.ErrorTransmit("db", "debug", errors.New("influx database initialization successful"), false, false) } else { - logger.Error("influx database initialization failed") + global.ERManager.ErrorTransmit("db", "error", errors.New("influx database initialization failed"), false, false) } } @@ -100,7 +99,7 @@ func ClearGraphData(retention int64) { current := time.Now() clear, err := time.Parse("15:04:05", conf.Global_Config.Neo4j.Cleartime) if err != nil { - logger.Error("ClearGraphData time parse error: %s, %s", err.Error(), conf.Global_Config.Neo4j.Cleartime) + global.ERManager.ErrorTransmit("db", "error", errors.Errorf("ClearGraphData time parse error: %s, %s", err.Error(), conf.Global_Config.Neo4j.Cleartime), false, false) } next := time.Date(current.Year(), current.Month(), current.Day()+1, clear.Hour(), clear.Minute(), clear.Second(), 0, current.Location()) diff --git a/cmd/server/db/redismanager/redis.go b/cmd/server/db/redismanager/redis.go index d02edfd7c52604bbc9ed77793a78e9df63b5346e..d82f92b4821a8a55deb8fb3e4e749e35fcb11084 100644 --- a/cmd/server/db/redismanager/redis.go +++ b/cmd/server/db/redismanager/redis.go @@ -12,7 +12,6 @@ import ( "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/agentmanager" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/conf" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" - "gitee.com/openeuler/PilotGo/sdk/logger" "gitee.com/openeuler/PilotGo/sdk/utils/httputils" "github.com/go-redis/redis/v8" "github.com/pkg/errors" @@ -215,15 +214,14 @@ func (r *RedisClient) UpdateTopoRunningAgentList(uuids []string, updateonce bool } once.Do(func() { - logger.Warn("no running agent......") + global.ERManager.ErrorTransmit("db", "warn", errors.New("no running agent......"), false, false) }) if len(abort_reason) != 0 { - logger.Warn("========agent status========") + global.ERManager.ErrorTransmit("db", "warn", errors.New("========agent status========"), false, false) for _, r := range abort_reason { - logger.Warn(r) + global.ERManager.ErrorTransmit("db", "warn", errors.New(r), false, false) } - logger.Warn("============================") } if updateonce { diff --git a/cmd/server/generator/generator.go b/cmd/server/generator/generator.go index 6cc006bcb1ea40ac9d8cb82144339f6325a9f9dd..deb0ed37c1230e96141533ebd894414a93b1027a 100755 --- a/cmd/server/generator/generator.go +++ b/cmd/server/generator/generator.go @@ -124,7 +124,6 @@ func (t *TopoGenerator) ProcessingData(agentnum int) (*graph.Nodes, *graph.Edges atomic.StoreInt32(t.Factory.Return_Agent_node_count(), int32(0)) elapse := time.Since(start) - // logger.Info("topo server 采集数据处理时间[0m: %v\n", elapse) global.ERManager.ErrorTransmit("generator", "info", errors.Errorf("采集数据处理时间: %v\n", elapse), false, false) return nodes, edges, collect_errorlist, process_errorlist @@ -161,7 +160,6 @@ func (t *TopoGenerator) collectInstantData() []error { agentmanager.Global_AgentManager.AddAgent_T(agent) temp_elapse := time.Since(temp_start) - // logger.Info("\033[32mtopo server 采集数据获取时间\033[0m: %s, %v, total\n", agent.UUID, temp_elapse) global.ERManager.ErrorTransmit("generator", "info", errors.Errorf("采集数据获取时间: %s, %v, total\n", agent.UUID, temp_elapse), false, false) }() @@ -172,7 +170,6 @@ func (t *TopoGenerator) collectInstantData() []error { wg.Wait() elapse := time.Since(start) - // logger.Info("\033[32mtopo server 采集数据获取时间\033[0m: %v\n", elapse) global.ERManager.ErrorTransmit("generator", "info", errors.Errorf("采集数据获取时间: %v\n", elapse), false, false) if len(errorlist) != 0 { @@ -195,7 +192,6 @@ func (t *TopoGenerator) getCollectDataFromTopoAgent(agent *agentmanager.Agent) e reader := bytes.NewReader(resp.Body) io.Copy(tmpfile, reader) fileInfo, _ := tmpfile.Stat() - // logger.Info("\033[32mtopo server 采集数据大小\033[0m: %s, %d kb\n", agent.UUID, fileInfo.Size()/1024) global.ERManager.ErrorTransmit("generator", "info", errors.Errorf("采集数据大小: %s, %d kb\n", agent.UUID, fileInfo.Size()/1024), false, false) if statuscode := resp.StatusCode; statuscode != 200 { diff --git a/cmd/server/global/close.go b/cmd/server/global/close.go index f5f4cc4d2fe06f96305817ab6321d6c50dc94155..58950e89670e4e3cae2da04cdf4cb71ecf35929b 100644 --- a/cmd/server/global/close.go +++ b/cmd/server/global/close.go @@ -1,9 +1,8 @@ package global import ( + "errors" "fmt" - - "gitee.com/openeuler/PilotGo/sdk/logger" ) func Close() { @@ -12,17 +11,17 @@ func Close() { if Global_neo4j_driver != nil { Global_neo4j_driver.Close() fmt.Println() - logger.Info("close the connection to neo4j\n") + ERManager.ErrorTransmit("global", "info", errors.New("close the connection to neo4j"), false, false) } } if Global_redis_client != nil { Global_redis_client.Close() - logger.Info("close the connection to redis\n") + ERManager.ErrorTransmit("global", "info", errors.New("close the connection to redis"), false, false) } if Global_influx_client != nil { Global_influx_client.Close() - logger.Info("close the connection to influx\n") + ERManager.ErrorTransmit("global", "info", errors.New("close the connection to influx"), false, false) } } diff --git a/cmd/server/graph/edge.go b/cmd/server/graph/edge.go index 1252ac6bdc987b6ccedb3c1bb6b0866a1dd76d3f..57f954a8cec5d7bfaafd01a3c0e48e6da179f315 100644 --- a/cmd/server/graph/edge.go +++ b/cmd/server/graph/edge.go @@ -5,7 +5,6 @@ import ( "sync" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" - "gitee.com/openeuler/PilotGo/sdk/logger" "github.com/pkg/errors" ) @@ -35,7 +34,7 @@ func (e *Edges) Add(edge *Edge) { if edge.Type == global.EDGE_TCP || edge.Type == global.EDGE_UDP { id_slice := strings.Split(edge.ID, global.EDGE_CONNECTOR) if len(id_slice) != 3 { - logger.Error("can not generate mirror id of edge: %s, failed to add edge.", edge.ID) + global.ERManager.ErrorTransmit("graph", "error", errors.Errorf("can not generate mirror id of edge: %s, failed to add edge.", edge.ID), false, false) return } diff --git a/cmd/server/logger/sdkLogger.go b/cmd/server/logger/sdkLogger.go index 9b409bb622c38f6217a30d0f268c6da7c9b4439c..260323d71ea7d2fcbfa91d79aaf0416ed31c4e5c 100644 --- a/cmd/server/logger/sdkLogger.go +++ b/cmd/server/logger/sdkLogger.go @@ -2,6 +2,7 @@ package logger import ( "fmt" + "os" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/conf" "gitee.com/openeuler/PilotGo/sdk/logger" @@ -11,5 +12,6 @@ func InitLogger() { err := logger.Init(conf.Global_Config.Logopts) if err != nil { fmt.Printf("logger module init failed: %s\n", err.Error()) + os.Exit(1) } } diff --git a/cmd/server/pluginclient/pluginClient.go b/cmd/server/pluginclient/pluginClient.go index 69ea079616ef7b2f61fd5514180ddfb9c60cf09c..e4e747efcd101f5b261c30ea6c7c7f6abf3d96bf 100644 --- a/cmd/server/pluginclient/pluginClient.go +++ b/cmd/server/pluginclient/pluginClient.go @@ -6,8 +6,8 @@ import ( "time" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/conf" + "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" "gitee.com/openeuler/PilotGo/sdk/common" - "gitee.com/openeuler/PilotGo/sdk/logger" "gitee.com/openeuler/PilotGo/sdk/plugin/client" "github.com/pkg/errors" ) @@ -20,8 +20,7 @@ func InitPluginClient() { } else if conf.Global_Config != nil && !conf.Global_Config.Topo.Https_enabled { PluginInfo.Url = fmt.Sprintf("http://%s", conf.Global_Config.Topo.Addr_target) } else { - err := errors.New("Global_Config is nil") - logger.Fatal("%+v", err) + global.ERManager.ErrorTransmit("pluginclient", "error", errors.New("Global_Config is nil"), true, false) } Global_Client = client.DefaultClient(PluginInfo) @@ -43,7 +42,7 @@ func uploadResource() { files, err := os.ReadDir(dirPath) if err != nil { - logger.Error("fail to read files: %s", err.Error()) + global.ERManager.ErrorTransmit("pluginclient", "error", errors.Errorf("fail to read files: %s", err.Error()), false, false) return } for _, file := range files { @@ -56,7 +55,7 @@ func uploadResource() { for _, filename := range filename_list { err := Global_Client.FileUpload(dirPath, filename) if err != nil { - logger.Error("fail to upload file: %s", err.Error()) + global.ERManager.ErrorTransmit("pluginclient", "error", errors.Errorf("fail to upload file: %s", err.Error()), false, false) } } } diff --git a/cmd/server/resourcemanage/resourcemanage.go b/cmd/server/resourcemanage/resourcemanage.go index 9043eb14d0eb7bb2cc1123880151920491ee85d1..cf17c08942e743ee11f0049efeb42dcc122b953e 100644 --- a/cmd/server/resourcemanage/resourcemanage.go +++ b/cmd/server/resourcemanage/resourcemanage.go @@ -80,6 +80,10 @@ func (erm *ErrorReleaseManagement) errorFactory() { logger.Info("error management stopped") return case _error := <-erm.ErrChan: + if _error == nil { + continue + } + _terror, ok := _error.(*FinalError) if !ok { logger.Error("plain error: %s", _error.Error()) @@ -152,7 +156,10 @@ func (erm *ErrorReleaseManagement) ErrorTransmit(_module, _severity string, _err } func (erm *ErrorReleaseManagement) logFormat(_err error, _module string) string { - log := fmt.Sprintf("%v %s %s %s %+v", + if len(_module) > 10 { + _module = _module[:10] + } + log := fmt.Sprintf("%v %s %-10s %s %+v", time.Now().Format("2006-01-02 15:04:05"), green, _module, reset, _err.Error(), @@ -161,7 +168,10 @@ func (erm *ErrorReleaseManagement) logFormat(_err error, _module string) string } func (erm *ErrorReleaseManagement) errorStackMsg(_module string) string { - return fmt.Sprintf("%v %s %s %s", + if len(_module) > 10 { + _module = _module[:10] + } + return fmt.Sprintf("%v %s %-10s %s", time.Now().Format("2006-01-02 15:04:05"), green, _module, reset, ) diff --git a/cmd/server/service/periodcollect.go b/cmd/server/service/periodcollect.go index f396a0db45a97cb2625dd3262b0f642941bccba9..8b941f11b9a581f1e5619bf7c429c4499ec2d9f2 100644 --- a/cmd/server/service/periodcollect.go +++ b/cmd/server/service/periodcollect.go @@ -15,7 +15,6 @@ import ( "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/generator" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/graph" - "gitee.com/openeuler/PilotGo/sdk/logger" "github.com/pkg/errors" ) @@ -48,7 +47,7 @@ func InitPeriodCollectWorking(batch []string, noderules [][]mysqlmanager.Filter_ for { select { case <-global.ERManager.GoCancelCtx.Done(): - logger.Info("cancelCtx is done, exit period collect goroutine") + global.ERManager.ErrorTransmit("service", "info", errors.New("cancelCtx is done, exit period collect goroutine"), false, false) return default: redismanager.Global_Redis.ActiveHeartbeatDetection(batch) @@ -168,9 +167,7 @@ func DataProcessWorking(unixtime int64, agentnum int, graphdb graphmanager.Graph } elapse := time.Since(start) - // fmt.Fprintf(agentmanager.Topo.Out, "\033[32mtopo server 数据库写入时间\033[0m: %v\n\n", elapse) - logger.Info("\033[32mtopo server 数据库写入时间\033[0m: %v\n\n", elapse) - + global.ERManager.ErrorTransmit("service", "info", errors.Errorf("图数据库写入时间: %v\n\n", elapse), false, false) return nil, nil, nil, nil } diff --git a/cmd/server/signal/signalMonitor.go b/cmd/server/signal/signalMonitor.go index 8e431b88d3351811edf3b96a20a24bb3dc6e74a4..5655760d53caf4819b361f164277fd263cfc7cfb 100644 --- a/cmd/server/signal/signalMonitor.go +++ b/cmd/server/signal/signalMonitor.go @@ -6,7 +6,7 @@ import ( "syscall" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/global" - "gitee.com/openeuler/PilotGo/sdk/logger" + "github.com/pkg/errors" ) func SignalMonitoring() { @@ -16,10 +16,11 @@ func SignalMonitoring() { for s := range ch { switch s { case syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT: + global.ERManager.ErrorTransmit("signal", "info", errors.Errorf("signal interrupt: %s", s.String()), false, false) global.ERManager.ResourceRelease() os.Exit(1) default: - logger.Warn("unknown signal-> %s\n", s.String()) + global.ERManager.ErrorTransmit("signal", "warn", errors.Errorf("unknown signal: %s", s.String()), false, false) } } } diff --git a/cmd/server/webserver/engine.go b/cmd/server/webserver/engine.go index 16380cd4ea1a7f04c4aef2fd7bf769f20b6b1ef8..e88b6d405c8041b387571acc04ac13d610e64eb6 100644 --- a/cmd/server/webserver/engine.go +++ b/cmd/server/webserver/engine.go @@ -14,7 +14,6 @@ import ( "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/webserver/frontendResource" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/webserver/handle" "gitee.com/openeuler/PilotGo-plugin-topology/cmd/server/webserver/middleware" - "gitee.com/openeuler/PilotGo/sdk/logger" "github.com/gin-gonic/gin" "github.com/pkg/errors" ) @@ -28,8 +27,8 @@ func InitWebServer() { engine := gin.New() engine.Use(gin.Recovery(), middleware.Logger([]string{ - "/plugin/topology/api/heartbeat", - "/plugin_manage/bind", + "/plugin/topology/api/heartbeat", + "/plugin_manage/bind", "/", })) gin.SetMode(gin.ReleaseMode) @@ -37,7 +36,7 @@ func InitWebServer() { InitRouter(engine) frontendResource.StaticRouter(engine) - webserver := &http.Server{ + web := &http.Server{ Addr: conf.Global_Config.Topo.Addr, Handler: engine, } @@ -45,7 +44,7 @@ func InitWebServer() { global.ERManager.Wg.Add(1) go func() { if conf.Global_Config.Topo.Https_enabled { - if err := webserver.ListenAndServeTLS(conf.Global_Config.Topo.Public_certificate, conf.Global_Config.Topo.Private_key); err != nil { + if err := web.ListenAndServeTLS(conf.Global_Config.Topo.Public_certificate, conf.Global_Config.Topo.Private_key); err != nil { if strings.Contains(err.Error(), "Server closed") { err = errors.New(err.Error()) global.ERManager.ErrorTransmit("webserver", "info", err, false, false) @@ -55,7 +54,7 @@ func InitWebServer() { global.ERManager.ErrorTransmit("webserver", "error", err, true, true) } } - if err := webserver.ListenAndServe(); err != nil { + if err := web.ListenAndServe(); err != nil { if strings.Contains(err.Error(), "Server closed") { err = errors.New(err.Error()) global.ERManager.ErrorTransmit("webserver", "info", err, false, false) @@ -70,14 +69,16 @@ func InitWebServer() { defer global.ERManager.Wg.Done() <-global.ERManager.GoCancelCtx.Done() - logger.Info("shutting down web server...") + + global.ERManager.ErrorTransmit("webserver", "info", errors.New("shutting down web server..."), false, false) + ctx, cancel := context.WithTimeout(global.RootContext, 1*time.Second) defer cancel() - if err := webserver.Shutdown(ctx); err != nil { - logger.Error("web server shutdown error: %s", err.Error()) + if err := web.Shutdown(ctx); err != nil { + global.ERManager.ErrorTransmit("webserver", "error", errors.Errorf("web server shutdown error: %s", err.Error()), false, false) } else { - logger.Info("web server stopped") + global.ERManager.ErrorTransmit("webserver", "info", errors.New("web server stopped"), false, false) } }() }