add chart display config

This commit is contained in:
liuzhihang1
2025-04-15 08:04:40 +00:00
parent eb43a549e2
commit be6bbef98c
3 changed files with 38 additions and 33 deletions

View File

@@ -4,33 +4,34 @@ var CF = new(configuration)
// 只支持 float64、int、int64、bool、string类型 // 只支持 float64、int、int64、bool、string类型
type configuration struct { type configuration struct {
LogLevel string `default:"debug" describe:"日志等级[debug,info]"` LogLevel string `default:"debug" describe:"日志等级[debug,info]"`
Listen string `default:":8797" describe:"监听端口"` Listen string `default:":8797" describe:"监听端口"`
EsEnable bool `default:"false" describe:"启用Elasticsearch"` EsEnable bool `default:"false" describe:"启用Elasticsearch"`
EsUrl string `default:"" describe:"Elasticsearch url"` EsUrl string `default:"" describe:"Elasticsearch url"`
EsIndex string `default:"server_log_v1" describe:"Elasticsearch index"` EsIndex string `default:"server_log_v1" describe:"Elasticsearch index"`
EsUsername string `default:"" describe:"Elasticsearch用户名"` EsUsername string `default:"" describe:"Elasticsearch用户名"`
EsPassword string `default:"" describe:"Elasticsearch密码"` EsPassword string `default:"" describe:"Elasticsearch密码"`
EsWindowLimit bool `default:"true" describe:"Es分页10000条限制"` EsWindowLimit bool `default:"true" describe:"Es分页10000条限制"`
FileSizeLimit float64 `default:"10.0" describe:"文件大小限制MB"` FileSizeLimit float64 `default:"10.0" describe:"文件大小限制MB"`
ProcessInputPrefix string `default:">" describe:"进程输入前缀"` ProcessInputPrefix string `default:">" describe:"进程输入前缀"`
ProcessRestartsLimit int `default:"2" describe:"进程重启次数限制"` ProcessRestartsLimit int `default:"2" describe:"进程重启次数限制"`
ProcessMsgCacheLinesLimit int `default:"50" describe:"std进程缓存消息行数"` ProcessMsgCacheLinesLimit int `default:"50" describe:"std进程缓存消息行数"`
ProcessMsgCacheBufLimit int `default:"4096" describe:"pty进程缓存消息字节长度"` ProcessMsgCacheBufLimit int `default:"4096" describe:"pty进程缓存消息字节长度"`
ProcessExpireTime int64 `default:"60" describe:"进程控制权过期时间(秒)"` ProcessExpireTime int64 `default:"60" describe:"进程控制权过期时间(秒)"`
PerformanceInfoListLength int `default:"30" describe:"性能信息存储长度"` PerformanceInfoListLength int `default:"30" describe:"性能信息存储长度"`
PerformanceInfoInterval int `default:"60" describe:"监控获取间隔时间(秒)"` PerformanceInfoInterval int `default:"60" describe:"监控获取间隔时间(秒)"`
TerminalConnectTimeout int `default:"10" describe:"终端连接超时时间(分钟)"` TerminalConnectTimeout int `default:"10" describe:"终端连接超时时间(分钟)"`
UserPassWordMinLength int `default:"4" describe:"用户密码最小长度"` UserPassWordMinLength int `default:"4" describe:"用户密码最小长度"`
LogMinLenth int `default:"0" describe:"过滤日志最小长度"` LogMinLenth int `default:"0" describe:"过滤日志最小长度"`
LogHandlerPoolSize int `default:"10" describe:"日志处理并行数"` LogHandlerPoolSize int `default:"10" describe:"日志处理并行数"`
PprofEnable bool `default:"true" describe:"启用pprof分析工具"` PprofEnable bool `default:"true" describe:"启用pprof分析工具"`
KillWaitTime int `default:"5" describe:"kill信号等待时间"` KillWaitTime int `default:"5" describe:"kill信号等待时间"`
TaskTimeout int `default:"60" describe:"任务执行超时时间(秒)"` TaskTimeout int `default:"60" describe:"任务执行超时时间(秒)"`
TokenExpirationTime int64 `default:"720" describe:"token过期时间小时"` TokenExpirationTime int64 `default:"720" describe:"token过期时间小时"`
WsHealthCheckInterval int `default:"3" describe:"ws主动健康检查间隔"` WsHealthCheckInterval int `default:"3" describe:"ws主动健康检查间隔"`
CgroupPeriod int64 `default:"100000" describe:"CgroupPeriod"` CgroupPeriod int64 `default:"100000" describe:"CgroupPeriod"`
CgroupSwapLimit bool `default:"false" describe:"cgroup swap限制"` CgroupSwapLimit bool `default:"false" describe:"cgroup swap限制"`
CondWaitTime int `default:"30" describe:"长轮询等待时间(秒)"` CondWaitTime int `default:"30" describe:"长轮询等待时间(秒)"`
Tui bool `default:"-"` PerformanceCapacityDisplay bool `default:"false" describe:"性能资源容量显示"`
Tui bool `default:"-"`
} }

View File

@@ -7,6 +7,7 @@ import (
"strings" "strings"
"sync" "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/constants"
"github.com/lzh-1625/go_process_manager/internal/app/model" "github.com/lzh-1625/go_process_manager/internal/app/model"
"github.com/lzh-1625/go_process_manager/internal/app/repository" "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.State.State = process.State.State
pi.StartTime = process.GetStartTimeFormat() pi.StartTime = process.GetStartTimeFormat()
pi.User = process.GetUserString() pi.User = process.GetUserString()
pi.Usage.Cpu = process.performanceStatus.cpu pi.Usage.Cpu = process.performanceStatus.cpu
pi.Usage.CpuCapacity = float64(runtime.NumCPU()) * 100.0
pi.Usage.Mem = process.performanceStatus.mem 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.Usage.Time = process.performanceStatus.time
pi.TermType = process.Type() pi.TermType = process.Type()
pi.CgroupEnable = process.Config.cgroupEnable pi.CgroupEnable = process.Config.cgroupEnable

View File

@@ -16,8 +16,8 @@ type ProcessInfo struct {
} }
type Usage struct { type Usage struct {
CpuCapacity float64 `json:"cpuCapacity"` CpuCapacity float64 `json:"cpuCapacity,omitempty"`
MemCapacity float64 `json:"memCapacity"` MemCapacity float64 `json:"memCapacity,omitempty"`
Cpu []float64 `json:"cpu"` Cpu []float64 `json:"cpu"`
Mem []float64 `json:"mem"` Mem []float64 `json:"mem"`
Time []string `json:"time"` Time []string `json:"time"`