From be6bbef98ce4483639aa4aca8042f6ed28d0cc47 Mon Sep 17 00:00:00 2001 From: liuzhihang1 <1625167628@qq.com> Date: Tue, 15 Apr 2025 08:04:40 +0000 Subject: [PATCH] add chart display config --- config/config.go | 59 +++++++++++++++-------------- internal/app/logic/process_logic.go | 8 +++- internal/app/model/proc.go | 4 +- 3 files changed, 38 insertions(+), 33 deletions(-) diff --git a/config/config.go b/config/config.go index 59a5a7d..fa1c405 100644 --- a/config/config.go +++ b/config/config.go @@ -4,33 +4,34 @@ var CF = new(configuration) // 只支持 float64、int、int64、bool、string类型 type configuration struct { - LogLevel string `default:"debug" describe:"日志等级[debug,info]"` - Listen string `default:":8797" describe:"监听端口"` - EsEnable bool `default:"false" describe:"启用Elasticsearch"` - EsUrl string `default:"" describe:"Elasticsearch url"` - EsIndex string `default:"server_log_v1" describe:"Elasticsearch index"` - EsUsername string `default:"" describe:"Elasticsearch用户名"` - EsPassword string `default:"" describe:"Elasticsearch密码"` - EsWindowLimit bool `default:"true" describe:"Es分页10000条限制"` - FileSizeLimit float64 `default:"10.0" describe:"文件大小限制(MB)"` - ProcessInputPrefix string `default:">" describe:"进程输入前缀"` - ProcessRestartsLimit int `default:"2" describe:"进程重启次数限制"` - ProcessMsgCacheLinesLimit int `default:"50" describe:"std进程缓存消息行数"` - ProcessMsgCacheBufLimit int `default:"4096" describe:"pty进程缓存消息字节长度"` - ProcessExpireTime int64 `default:"60" describe:"进程控制权过期时间(秒)"` - PerformanceInfoListLength int `default:"30" describe:"性能信息存储长度"` - PerformanceInfoInterval int `default:"60" describe:"监控获取间隔时间(秒)"` - TerminalConnectTimeout int `default:"10" describe:"终端连接超时时间(分钟)"` - UserPassWordMinLength int `default:"4" describe:"用户密码最小长度"` - LogMinLenth int `default:"0" describe:"过滤日志最小长度"` - LogHandlerPoolSize int `default:"10" describe:"日志处理并行数"` - PprofEnable bool `default:"true" describe:"启用pprof分析工具"` - KillWaitTime int `default:"5" describe:"kill信号等待时间(秒)"` - TaskTimeout int `default:"60" describe:"任务执行超时时间(秒)"` - TokenExpirationTime int64 `default:"720" describe:"token过期时间(小时)"` - WsHealthCheckInterval int `default:"3" describe:"ws主动健康检查间隔(秒)"` - CgroupPeriod int64 `default:"100000" describe:"CgroupPeriod"` - CgroupSwapLimit bool `default:"false" describe:"cgroup swap限制"` - CondWaitTime int `default:"30" describe:"长轮询等待时间(秒)"` - Tui bool `default:"-"` + LogLevel string `default:"debug" describe:"日志等级[debug,info]"` + Listen string `default:":8797" describe:"监听端口"` + EsEnable bool `default:"false" describe:"启用Elasticsearch"` + EsUrl string `default:"" describe:"Elasticsearch url"` + EsIndex string `default:"server_log_v1" describe:"Elasticsearch index"` + EsUsername string `default:"" describe:"Elasticsearch用户名"` + EsPassword string `default:"" describe:"Elasticsearch密码"` + EsWindowLimit bool `default:"true" describe:"Es分页10000条限制"` + FileSizeLimit float64 `default:"10.0" describe:"文件大小限制(MB)"` + ProcessInputPrefix string `default:">" describe:"进程输入前缀"` + ProcessRestartsLimit int `default:"2" describe:"进程重启次数限制"` + ProcessMsgCacheLinesLimit int `default:"50" describe:"std进程缓存消息行数"` + ProcessMsgCacheBufLimit int `default:"4096" describe:"pty进程缓存消息字节长度"` + ProcessExpireTime int64 `default:"60" describe:"进程控制权过期时间(秒)"` + PerformanceInfoListLength int `default:"30" describe:"性能信息存储长度"` + PerformanceInfoInterval int `default:"60" describe:"监控获取间隔时间(秒)"` + TerminalConnectTimeout int `default:"10" describe:"终端连接超时时间(分钟)"` + UserPassWordMinLength int `default:"4" describe:"用户密码最小长度"` + LogMinLenth int `default:"0" describe:"过滤日志最小长度"` + LogHandlerPoolSize int `default:"10" describe:"日志处理并行数"` + PprofEnable bool `default:"true" describe:"启用pprof分析工具"` + KillWaitTime int `default:"5" describe:"kill信号等待时间(秒)"` + TaskTimeout int `default:"60" describe:"任务执行超时时间(秒)"` + TokenExpirationTime int64 `default:"720" describe:"token过期时间(小时)"` + WsHealthCheckInterval int `default:"3" describe:"ws主动健康检查间隔(秒)"` + CgroupPeriod int64 `default:"100000" describe:"CgroupPeriod"` + CgroupSwapLimit bool `default:"false" describe:"cgroup swap限制"` + CondWaitTime int `default:"30" describe:"长轮询等待时间(秒)"` + PerformanceCapacityDisplay bool `default:"false" describe:"性能资源容量显示"` + Tui bool `default:"-"` } diff --git a/internal/app/logic/process_logic.go b/internal/app/logic/process_logic.go index c7ce209..292e98a 100644 --- a/internal/app/logic/process_logic.go +++ b/internal/app/logic/process_logic.go @@ -7,6 +7,7 @@ import ( "strings" "sync" + "github.com/lzh-1625/go_process_manager/config" "github.com/lzh-1625/go_process_manager/internal/app/constants" "github.com/lzh-1625/go_process_manager/internal/app/model" "github.com/lzh-1625/go_process_manager/internal/app/repository" @@ -119,10 +120,13 @@ func (p *processCtlLogic) getProcessInfoList(processConfiglist []model.Process) pi.State.State = process.State.State pi.StartTime = process.GetStartTimeFormat() pi.User = process.GetUserString() + pi.Usage.Cpu = process.performanceStatus.cpu - pi.Usage.CpuCapacity = float64(runtime.NumCPU()) * 100.0 pi.Usage.Mem = process.performanceStatus.mem - pi.Usage.MemCapacity = float64(utils.UnwarpIgnore(mem.VirtualMemory()).Total >> 10) + if config.CF.PerformanceCapacityDisplay { + pi.Usage.CpuCapacity = float64(runtime.NumCPU()) * 100.0 + pi.Usage.MemCapacity = float64(utils.UnwarpIgnore(mem.VirtualMemory()).Total >> 10) + } pi.Usage.Time = process.performanceStatus.time pi.TermType = process.Type() pi.CgroupEnable = process.Config.cgroupEnable diff --git a/internal/app/model/proc.go b/internal/app/model/proc.go index 2f44f18..b43f569 100644 --- a/internal/app/model/proc.go +++ b/internal/app/model/proc.go @@ -16,8 +16,8 @@ type ProcessInfo struct { } type Usage struct { - CpuCapacity float64 `json:"cpuCapacity"` - MemCapacity float64 `json:"memCapacity"` + CpuCapacity float64 `json:"cpuCapacity,omitempty"` + MemCapacity float64 `json:"memCapacity,omitempty"` Cpu []float64 `json:"cpu"` Mem []float64 `json:"mem"` Time []string `json:"time"`