mirror of
https://github.com/bcicen/ctop.git
synced 2025-12-06 15:16:41 +08:00
add percent helper method to metrics
This commit is contained in:
@@ -86,7 +86,7 @@ func (c *Docker) ReadCPU(stats *api.Stats) {
|
|||||||
func (c *Docker) ReadMem(stats *api.Stats) {
|
func (c *Docker) ReadMem(stats *api.Stats) {
|
||||||
c.MemUsage = int64(stats.MemoryStats.Usage)
|
c.MemUsage = int64(stats.MemoryStats.Usage)
|
||||||
c.MemLimit = int64(stats.MemoryStats.Limit)
|
c.MemLimit = int64(stats.MemoryStats.Limit)
|
||||||
c.MemPercent = round((float64(c.MemUsage) / float64(c.MemLimit)) * 100)
|
c.MemPercent = percent(float64(c.MemUsage), float64(c.MemLimit))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Docker) ReadNet(stats *api.Stats) {
|
func (c *Docker) ReadNet(stats *api.Stats) {
|
||||||
|
|||||||
@@ -43,3 +43,11 @@ type Collector interface {
|
|||||||
func round(num float64) int {
|
func round(num float64) int {
|
||||||
return int(num + math.Copysign(0.5, num))
|
return int(num + math.Copysign(0.5, num))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return rounded percentage
|
||||||
|
func percent(val float64, total float64) int {
|
||||||
|
if total <= 0 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return round((val / total) * 100)
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func (c *Mock) run() {
|
|||||||
if c.MemUsage > c.MemLimit {
|
if c.MemUsage > c.MemLimit {
|
||||||
c.MemUsage = 0
|
c.MemUsage = 0
|
||||||
}
|
}
|
||||||
c.MemPercent = round((float64(c.MemUsage) / float64(c.MemLimit)) * 100)
|
c.MemPercent = percent(float64(c.MemUsage), float64(c.MemLimit))
|
||||||
c.stream <- c.Metrics
|
c.stream <- c.Metrics
|
||||||
if c.done {
|
if c.done {
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ func getSysMemTotal() int64 {
|
|||||||
return int64(stat.MemTotal * 1024)
|
return int64(stat.MemTotal * 1024)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return cumulative system cpu usage in nanoseconds
|
||||||
func getSysCPUUsage() uint64 {
|
func getSysCPUUsage() uint64 {
|
||||||
stat, err := linuxproc.ReadStat("/proc/stat")
|
stat, err := linuxproc.ReadStat("/proc/stat")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ func (c *Runc) ReadMem(stats *cgroups.Stats) {
|
|||||||
if c.MemLimit > sysMemTotal && sysMemTotal > 0 {
|
if c.MemLimit > sysMemTotal && sysMemTotal > 0 {
|
||||||
c.MemLimit = sysMemTotal
|
c.MemLimit = sysMemTotal
|
||||||
}
|
}
|
||||||
c.MemPercent = round((float64(c.MemUsage) / float64(c.MemLimit)) * 100)
|
c.MemPercent = percent(float64(c.MemUsage), float64(c.MemLimit))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Runc) ReadNet(interfaces []*libcontainer.NetworkInterface) {
|
func (c *Runc) ReadNet(interfaces []*libcontainer.NetworkInterface) {
|
||||||
|
|||||||
Reference in New Issue
Block a user