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

View File

@@ -8,8 +8,6 @@ import (
"sync"
"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/modules/ws/model"
"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
}
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, ",")
}
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()
if connections, err := proc.Connections(); err == nil {
procData.NumConnections = len(connections)
}
procData.CpuValue, _ = proc.CPUPercent()
procData.CpuPercent = fmt.Sprintf("%.2f%%", procData.CpuValue)
cpuPercent, _ := proc.CPUPercent()
procData.CpuPercent = fmt.Sprintf("%.2f", cpuPercent)
menInfo, procErr := proc.MemoryInfo()
if procErr == nil {
procData.Rss = parse.Bit(float64(menInfo.RSS))
procData.Data = parse.Bit(float64(menInfo.Data))
procData.VMS = parse.Bit(float64(menInfo.VMS))
procData.HWM = parse.Bit(float64(menInfo.HWM))
procData.Stack = parse.Bit(float64(menInfo.Stack))
procData.Locked = parse.Bit(float64(menInfo.Locked))
procData.Swap = parse.Bit(float64(menInfo.Swap))
procData.RssValue = menInfo.RSS
procData.Rss = menInfo.RSS
procData.Data = menInfo.Data
procData.VMS = menInfo.VMS
procData.HWM = menInfo.HWM
procData.Stack = menInfo.Stack
procData.Locked = menInfo.Locked
procData.Swap = menInfo.Swap
}
if ioStat, err := proc.IOCounters(); err == nil {
procData.DiskWrite = parse.Bit(float64(ioStat.WriteBytes))
procData.DiskRead = parse.Bit(float64(ioStat.ReadBytes))
procData.DiskWrite = ioStat.WriteBytes
procData.DiskRead = ioStat.ReadBytes
}
procData.CmdLine, _ = proc.Cmdline()
procData.Envs, _ = proc.Environ()
return procData, true
}