fix: 调整进程数据ps响应结果
This commit is contained in:
@@ -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"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user