fix: 调整进程数据ps响应结果

This commit is contained in:
TsMask
2024-09-09 09:36:25 +08:00
parent a5a7c38632
commit 4a609d12bb
2 changed files with 27 additions and 36 deletions

View File

@@ -2,37 +2,33 @@ package model
// PsProcessData 进程数据 // PsProcessData 进程数据
type PsProcessData struct { type PsProcessData struct {
PID int32 `json:"PID"` PID int32 `json:"pid"`
Name string `json:"name"` Name string `json:"name"`
PPID int32 `json:"PPID"` PPID int32 `json:"ppid"`
Username string `json:"username"` Username string `json:"username"`
Status string `json:"status"` Status string `json:"status"`
StartTime string `json:"startTime"` StartTime int64 `json:"startTime"`
NumThreads int32 `json:"numThreads"` NumThreads int32 `json:"numThreads"`
NumConnections int `json:"numConnections"` NumConnections int `json:"numConnections"`
CpuPercent string `json:"cpuPercent"` CpuPercent string `json:"cpuPercent"`
DiskRead string `json:"diskRead"` DiskRead uint64 `json:"diskRead"`
DiskWrite string `json:"diskWrite"` DiskWrite uint64 `json:"diskWrite"`
CmdLine string `json:"cmdLine"`
Rss string `json:"rss"` Rss uint64 `json:"rss"`
VMS string `json:"vms"` VMS uint64 `json:"vms"`
HWM string `json:"hwm"` HWM uint64 `json:"hwm"`
Data string `json:"data"` Data uint64 `json:"data"`
Stack string `json:"stack"` Stack uint64 `json:"stack"`
Locked string `json:"locked"` Locked uint64 `json:"locked"`
Swap string `json:"swap"` Swap uint64 `json:"swap"`
CpuValue float64 `json:"cpuValue"` CmdLine string `json:"cmdLine"`
RssValue uint64 `json:"rssValue"`
Envs []string `json:"envs"`
} }
// PsProcessQuery 进程查询 // PsProcessQuery 进程查询
type PsProcessQuery struct { type PsProcessQuery struct {
Pid int32 `json:"pid"` PID int32 `json:"pid"`
Name string `json:"name"` Name string `json:"name"`
Username string `json:"username"` Username string `json:"username"`
} }

View File

@@ -8,8 +8,6 @@ import (
"sync" "sync"
"be.ems/src/framework/logger" "be.ems/src/framework/logger"
"be.ems/src/framework/utils/date"
"be.ems/src/framework/utils/parse"
"be.ems/src/framework/vo/result" "be.ems/src/framework/vo/result"
"be.ems/src/modules/ws/model" "be.ems/src/modules/ws/model"
"github.com/shirou/gopsutil/v4/process" "github.com/shirou/gopsutil/v4/process"
@@ -44,7 +42,7 @@ func GetProcessData(requestID string, data any) ([]byte, error) {
} }
// 查询过滤 // 查询过滤
if query.Pid > 0 && procData.PID != query.Pid { if query.PID > 0 && procData.PID != query.PID {
return procData, false return procData, false
} }
if query.Name != "" && !strings.Contains(procData.Name, query.Name) { if query.Name != "" && !strings.Contains(procData.Name, query.Name) {
@@ -59,32 +57,29 @@ func GetProcessData(requestID string, data any) ([]byte, error) {
procData.Status = strings.Join(statusArray, ",") procData.Status = strings.Join(statusArray, ",")
} }
if createTime, err := proc.CreateTime(); err == nil { if createTime, err := proc.CreateTime(); err == nil {
procData.StartTime = date.ParseDateToStr(createTime, date.YYYY_MM_DD_HH_MM_SS) procData.StartTime = createTime
} }
procData.NumThreads, _ = proc.NumThreads() procData.NumThreads, _ = proc.NumThreads()
if connections, err := proc.Connections(); err == nil { if connections, err := proc.Connections(); err == nil {
procData.NumConnections = len(connections) procData.NumConnections = len(connections)
} }
procData.CpuValue, _ = proc.CPUPercent() cpuPercent, _ := proc.CPUPercent()
procData.CpuPercent = fmt.Sprintf("%.2f%%", procData.CpuValue) procData.CpuPercent = fmt.Sprintf("%.2f", cpuPercent)
menInfo, procErr := proc.MemoryInfo() menInfo, procErr := proc.MemoryInfo()
if procErr == nil { if procErr == nil {
procData.Rss = parse.Bit(float64(menInfo.RSS)) procData.Rss = menInfo.RSS
procData.Data = parse.Bit(float64(menInfo.Data)) procData.Data = menInfo.Data
procData.VMS = parse.Bit(float64(menInfo.VMS)) procData.VMS = menInfo.VMS
procData.HWM = parse.Bit(float64(menInfo.HWM)) procData.HWM = menInfo.HWM
procData.Stack = parse.Bit(float64(menInfo.Stack)) procData.Stack = menInfo.Stack
procData.Locked = parse.Bit(float64(menInfo.Locked)) procData.Locked = menInfo.Locked
procData.Swap = parse.Bit(float64(menInfo.Swap)) procData.Swap = menInfo.Swap
procData.RssValue = menInfo.RSS
} }
if ioStat, err := proc.IOCounters(); err == nil { if ioStat, err := proc.IOCounters(); err == nil {
procData.DiskWrite = parse.Bit(float64(ioStat.WriteBytes)) procData.DiskWrite = ioStat.WriteBytes
procData.DiskRead = parse.Bit(float64(ioStat.ReadBytes)) procData.DiskRead = ioStat.ReadBytes
} }
procData.CmdLine, _ = proc.Cmdline() procData.CmdLine, _ = proc.Cmdline()
procData.Envs, _ = proc.Environ()
return procData, true return procData, true
} }