Skip to content

Commit

Permalink
fix: 修复上报cpu资源时计算错误问题
Browse files Browse the repository at this point in the history
  • Loading branch information
Ambition9186 committed May 20, 2024
1 parent b254852 commit 01a8b39
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
7 changes: 6 additions & 1 deletion internal/util/process_collect/process_collector_other.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ func (c *processCollector) processCollect() {
return
}

// 定义上一次上报的cpu时间
var prevCPUTime float64

for {
select {
case <-time.After(time.Second):
Expand All @@ -49,8 +52,10 @@ func (c *processCollector) processCollect() {
logger.Error("returns the current status information of the process", logger.ErrAttr(err))
return
}
cpuUsage := stat.CPUTime() - prevCPUTime
prevCPUTime = stat.CPUTime()
// set cpu usage
setCpuUsage(stat.CPUTime())
setCpuUsage(cpuUsage)
// set memory usage
setMemUsage(uint64(stat.ResidentMemory()))
case <-c.ctx.Done():
Expand Down
8 changes: 6 additions & 2 deletions internal/util/process_collect/process_collector_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,20 @@ func (c *processCollector) processCollect() {
h := windows.CurrentProcess()
var startTime, exitTime, kernelTime, userTime windows.Filetime

// 定义上一次上报的cpu时间
var prevCPUTime float64

for {
select {
case <-time.After(time.Second):
if err := windows.GetProcessTimes(h, &startTime, &exitTime, &kernelTime, &userTime); err != nil {
logger.Error("get process times", logger.ErrAttr(err))
return
}

cpuUsage := fileTimeToSeconds(kernelTime) + fileTimeToSeconds(userTime) - prevCPUTime
prevCPUTime = fileTimeToSeconds(kernelTime) + fileTimeToSeconds(userTime)
// set cpu usage
setCpuUsage(fileTimeToSeconds(kernelTime) + fileTimeToSeconds(userTime))
setCpuUsage(cpuUsage)

mem, err := getProcessMemoryInfo(h)
if err != nil {
Expand Down

0 comments on commit 01a8b39

Please sign in to comment.