From 7b7b4c60021f3ff637244d3677b1df235a2fad2a Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sat, 21 Oct 2023 19:24:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=B3=BB=E7=BB=9F=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/monitor/controller/system_info.go | 1 - src/modules/monitor/service/system_info.go | 3 - .../monitor/service/system_info.impl.go | 94 +++---------------- 3 files changed, 15 insertions(+), 83 deletions(-) diff --git a/src/modules/monitor/controller/system_info.go b/src/modules/monitor/controller/system_info.go index 13004e17..a6cb03ca 100644 --- a/src/modules/monitor/controller/system_info.go +++ b/src/modules/monitor/controller/system_info.go @@ -25,7 +25,6 @@ type SystemInfoController struct { // GET / func (s *SystemInfoController) Info(c *gin.Context) { c.JSON(200, result.OkData(map[string]any{ - "project": s.systemInfogService.ProjectInfo(), "cpu": s.systemInfogService.CPUInfo(), "memory": s.systemInfogService.MemoryInfo(), "network": s.systemInfogService.NetworkInfo(), diff --git a/src/modules/monitor/service/system_info.go b/src/modules/monitor/service/system_info.go index e2be65fd..a6e9a51d 100644 --- a/src/modules/monitor/service/system_info.go +++ b/src/modules/monitor/service/system_info.go @@ -2,9 +2,6 @@ package service // ISystemInfo 服务器系统相关信息 服务层接口 type ISystemInfo interface { - // ProjectInfo 程序项目信息 - ProjectInfo() map[string]any - // SystemInfo 系统信息 SystemInfo() map[string]any diff --git a/src/modules/monitor/service/system_info.impl.go b/src/modules/monitor/service/system_info.impl.go index c6f3f37b..e9aed318 100644 --- a/src/modules/monitor/service/system_info.impl.go +++ b/src/modules/monitor/service/system_info.impl.go @@ -1,7 +1,6 @@ package service import ( - "bufio" "fmt" "os" "runtime" @@ -24,101 +23,38 @@ var NewSystemInfoImpl = &SystemInfoImpl{} // SystemInfoImpl 服务器系统相关信息 服务层处理 type SystemInfoImpl struct{} -// ProjectInfo 程序项目信息 -func (s *SystemInfoImpl) ProjectInfo() map[string]any { - // 获取工作目录 - appDir, err := os.Getwd() - if err != nil { - appDir = "" - } - // 项目依赖 - dependencies := s.dependencies() - return map[string]any{ - "appDir": appDir, - "env": config.Env(), - "name": config.Get("framework.name"), - "version": config.Get("framework.version"), - "dependencies": dependencies, - } -} - -// dependencies 读取mod内项目包依赖 -func (s *SystemInfoImpl) dependencies() map[string]string { - var pkgs = make(map[string]string) - - // 打开 go.mod 文件 - file, err := os.Open("go.mod") - if err != nil { - return pkgs - } - defer file.Close() - - // 使用 bufio.Scanner 逐行读取文件内容 - scanner := bufio.NewScanner(file) - for scanner.Scan() { - line := scanner.Text() - line = strings.TrimSpace(line) - - // 行不为空,不以module\require开头,不带有 // indirect 注释,则解析包名和版本 - prefixLine := strings.HasPrefix(line, "module") || strings.HasPrefix(line, "require") || strings.HasPrefix(line, "go ") - suffixLine := strings.HasSuffix(line, ")") || strings.HasSuffix(line, "// indirect") - if line == "" || prefixLine || suffixLine { - continue - } - - modInfo := strings.Split(line, " ") - if len(modInfo) >= 2 { - moduleName := strings.TrimSpace(modInfo[0]) - version := strings.TrimSpace(modInfo[1]) - pkgs[moduleName] = version - } - } - - if err := scanner.Err(); err != nil { - pkgs["scanner-err"] = err.Error() - } - return pkgs -} - // SystemInfo 系统信息 func (s *SystemInfoImpl) SystemInfo() map[string]any { info, err := host.Info() if err != nil { info.Platform = err.Error() } - // 用户目录 - homeDir, err := os.UserHomeDir() - if err != nil { - homeDir = "" - } - cmd, err := os.Executable() - if err != nil { - cmd = "" - } + bootTime := time.Since(time.Unix(int64(info.BootTime), 0)).String() return map[string]any{ - "platform": info.Platform, - "go": runtime.Version(), - "processId": os.Getpid(), - "arch": info.KernelArch, - "uname": runtime.GOARCH, - "release": info.OS, - "hostname": info.Hostname, - "homeDir": homeDir, - "cmd": cmd, - "execCommand": strings.Join(os.Args, " "), + "platform": info.Platform, + "platformVersion": info.PlatformVersion, + "arch": info.KernelArch, + "archVersion": info.KernelVersion, + "os": info.OS, + "hostname": info.Hostname, + "bootTime": bootTime, + "processId": os.Getpid(), + "runArch": runtime.GOARCH, + "runVersion": runtime.Version(), } } // TimeInfo 系统时间信息 func (s *SystemInfoImpl) TimeInfo() map[string]string { + now := time.Now() // 获取当前时间 - current := time.Now().Format("2006-01-02 15:04:05") + current := now.Format("2006-01-02 15:04:05") // 获取程序运行时间 uptime := time.Since(config.RunTime()).String() // 获取时区 - timezone := time.Now().Format("-0700 MST") + timezone := now.Format("-0700 MST") // 获取时区名称 - timezoneName := time.Now().Format("MST") + timezoneName := now.Format("MST") return map[string]string{ "current": current,