From df1e154cf9b2cfb31ef6b70a8273d0856a592944 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Fri, 8 Nov 2024 14:24:47 +0800 Subject: [PATCH] server: replace log with resourcemanagemen --- cmd/agent/signal/signalMonitor.go | 1 + cmd/server/db/dbmanager.go | 19 +++++++++---------- cmd/server/db/redismanager/redis.go | 8 +++----- cmd/server/generator/generator.go | 4 ---- cmd/server/global/close.go | 9 ++++----- cmd/server/graph/edge.go | 3 +-- cmd/server/logger/sdkLogger.go | 2 ++ cmd/server/pluginclient/pluginClient.go | 9 ++++----- cmd/server/resourcemanage/resourcemanage.go | 14 ++++++++++++-- cmd/server/service/periodcollect.go | 7 ++----- cmd/server/signal/signalMonitor.go | 5 +++-- cmd/server/webserver/engine.go | 21 +++++++++++---------- 12 files changed, 52 insertions(+), 50 deletions(-) diff --git a/cmd/agent/signal/signalMonitor.go b/cmd/agent/signal/signalMonitor.go index 8911bca..9d2ba23 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 d77bb81..8661cb8 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 d02edfd..d82f92b 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 6cc006b..deb0ed3 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 f5f4cc4..58950e8 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 1252ac6..57f954a 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 9b409bb..260323d 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 69ea079..e4e747e 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 9043eb1..cf17c08 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 f396a0d..8b941f1 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 8e431b8..5655760 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 16380cd..e88b6d4 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) } }() } -- Gitee