MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / handleProcessData

Function handleProcessData

agent/utils/websocket/process_data.go:160–207  ·  view source on GitHub ↗
(proc *process.Process, processConfig *PsProcessConfig, pidConnections map[int32][]net.ConnectionStat)

Source from the content-addressed store, hash-verified

158}
159
160func handleProcessData(proc *process.Process, processConfig *PsProcessConfig, pidConnections map[int32][]net.ConnectionStat) *PsProcessData {
161 if processConfig.Pid > 0 && processConfig.Pid != proc.Pid {
162 return nil
163 }
164 procData := PsProcessData{
165 PID: proc.Pid,
166 }
167 if procName, err := proc.Name(); err == nil {
168 procData.Name = procName
169 } else {
170 procData.Name = "<UNKNOWN>"
171 }
172 if processConfig.Name != "" && !strings.Contains(procData.Name, processConfig.Name) {
173 return nil
174 }
175 if username, err := proc.Username(); err == nil {
176 procData.Username = username
177 }
178 if processConfig.Username != "" && !strings.Contains(procData.Username, processConfig.Username) {
179 return nil
180 }
181 procData.PPID, _ = proc.Ppid()
182 statusArray, _ := proc.Status()
183 if len(statusArray) > 0 {
184 procData.Status = strings.Join(statusArray, ",")
185 }
186 createTime, procErr := proc.CreateTime()
187 if procErr == nil {
188 t := time.Unix(createTime/1000, 0)
189 procData.StartTime = t.Format("2006-1-2 15:04:05")
190 }
191 procData.NumThreads, _ = proc.NumThreads()
192 procData.CpuValue, _ = proc.CPUPercent()
193 procData.CpuPercent = fmt.Sprintf("%.2f%%", procData.CpuValue)
194
195 if memInfo, err := proc.MemoryInfo(); err == nil {
196 procData.RssValue = memInfo.RSS
197 procData.Rss = common.FormatBytes(memInfo.RSS)
198 } else {
199 procData.RssValue = 0
200 }
201
202 if connections, ok := pidConnections[proc.Pid]; ok {
203 procData.NumConnections = len(connections)
204 }
205
206 return &procData
207}
208
209func getProcessData(processConfig PsProcessConfig) (res []byte, err error) {
210 ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout)

Callers 1

getProcessDataFunction · 0.85

Calls 3

NameMethod · 0.65
StatusMethod · 0.65
FormatMethod · 0.45

Tested by

no test coverage detected