Skip to content

Commit e3eed78

Browse files
authored
Merge pull request #12 from swiftwave-org/fix_7
feat: instead of cpu percentage send cpu time
2 parents 10253b7 + 44b70b0 commit e3eed78

File tree

3 files changed

+12
-19
lines changed

3 files changed

+12
-19
lines changed

service/helpers.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,6 @@ import (
66
"github.com/docker/docker/api/types"
77
)
88

9-
func calculateCPUPercentUnix(v *types.StatsJSON) uint8 {
10-
/*
11-
cpu_delta = cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage
12-
system_cpu_delta = cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage
13-
CPU usage % = (cpu_delta / system_cpu_delta) * 100.0
14-
*/
15-
cpuDelta := float64(v.CPUStats.CPUUsage.TotalUsage) - float64(v.PreCPUStats.CPUUsage.TotalUsage)
16-
systemDelta := float64(v.CPUStats.SystemUsage) - float64(v.PreCPUStats.SystemUsage)
17-
return uint8(math.Round((cpuDelta / systemDelta) * 100.0))
18-
}
199

2010
func memoryUsageMB(v *types.StatsJSON) uint64 {
2111
// used_memory = memory_stats.usage - memory_stats.stats.cache

service/types.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package service
22

33
type ResourceStats struct {
4-
CpuUsagePercent uint8 `json:"cpu_used_percent"`
5-
UsedMemoryMB uint64 `json:"used_memory_mb"`
6-
NetStat NetStat `json:"network"`
4+
ServiceCpuTime uint64 `json:"service_cpu_time"`
5+
SystemCpuTime uint64 `json:"system_cpu_time"`
6+
UsedMemoryMB uint64 `json:"used_memory_mb"`
7+
NetStat *NetStat `json:"network"`
78
}
89

910
type NetStat struct {

service/utils.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ func Stats(cl *client.Client) (*map[string]*ResourceStats, error) {
4949
// create a new ResourceStats if it doesn't exist
5050
if _, ok := statsMap[serviceName]; !ok {
5151
statsMap[serviceName] = &ResourceStats{
52-
CpuUsagePercent: 0,
53-
UsedMemoryMB: 0,
54-
NetStat: NetStat{
52+
ServiceCpuTime: 0,
53+
SystemCpuTime: 0,
54+
UsedMemoryMB: 0,
55+
NetStat: &NetStat{
5556
SentKB: 0,
5657
RecvKB: 0,
5758
},
@@ -72,7 +73,8 @@ func Stats(cl *client.Client) (*map[string]*ResourceStats, error) {
7273
}
7374

7475
// save the stats
75-
rs.CpuUsagePercent = rs.CpuUsagePercent + calculateCPUPercentUnix(&statsJSON)
76+
rs.ServiceCpuTime = rs.ServiceCpuTime + uint64(statsJSON.CPUStats.CPUUsage.TotalUsage-statsJSON.PreCPUStats.CPUUsage.TotalUsage)
77+
rs.SystemCpuTime = uint64(statsJSON.CPUStats.SystemUsage - statsJSON.PreCPUStats.SystemUsage)
7678
rs.UsedMemoryMB = rs.UsedMemoryMB + memoryUsageMB(&statsJSON)
7779
rs.NetStat.SentKB = rs.NetStat.SentKB + networkSentKB(&statsJSON)
7880
rs.NetStat.RecvKB = rs.NetStat.RecvKB + networkRecvKB(&statsJSON)
@@ -106,12 +108,12 @@ func calculateNetStatDiffFromLastRecord(statsMap *map[string]*ResourceStats) {
106108
if currentSentKB < oldSentKB {
107109
statsMapRef[serviceName].NetStat.SentKB = 0
108110
} else {
109-
statsMapRef[serviceName].NetStat.SentKB = currentSentKB-oldSentKB
111+
statsMapRef[serviceName].NetStat.SentKB = currentSentKB - oldSentKB
110112
}
111113
if currentRecvKB < oldRecvKB {
112114
statsMapRef[serviceName].NetStat.RecvKB = 0
113115
} else {
114-
statsMapRef[serviceName].NetStat.RecvKB = currentRecvKB-oldRecvKB
116+
statsMapRef[serviceName].NetStat.RecvKB = currentRecvKB - oldRecvKB
115117
}
116118
serviceLastNetStats[serviceName].SentKB = currentSentKB
117119
serviceLastNetStats[serviceName].RecvKB = currentRecvKB

0 commit comments

Comments
 (0)