diff options
author | Stuart Shelton <stuart@shelton.me> | 2021-01-12 23:37:24 +0000 |
---|---|---|
committer | Stuart Shelton <stuart@shelton.me> | 2021-01-12 23:38:08 +0000 |
commit | a6af56f5b45b3014c1e548d8c84e23e7cb341f5d (patch) | |
tree | 8db33ee4b7d83c8fca7dd1ffae1d69241eaf2117 /cmd/podman | |
parent | 265ec914d3a2286c0e4070842c942c1fee0dd7df (diff) | |
download | podman-a6af56f5b45b3014c1e548d8c84e23e7cb341f5d.tar.gz podman-a6af56f5b45b3014c1e548d8c84e23e7cb341f5d.tar.bz2 podman-a6af56f5b45b3014c1e548d8c84e23e7cb341f5d.zip |
Add 'MemUsageBytes' format option
Although storage is more human-readable when expressed in SI units,
IEC/JEDEC (Bytes) units are more pertinent for memory-related values
(and match the format of the --memory* command-line options).
(To prevent possible compatibility issues, the default SI display is
left unchanged)
See https://github.com/containers/podman/issues/8945
Signed-off-by: Stuart Shelton <stuart@shelton.me>
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/containers/stats.go | 27 | ||||
-rw-r--r-- | cmd/podman/pods/stats.go | 11 |
2 files changed, 26 insertions, 12 deletions
diff --git a/cmd/podman/containers/stats.go b/cmd/podman/containers/stats.go index ca5c0fdb8..1a436aaef 100644 --- a/cmd/podman/containers/stats.go +++ b/cmd/podman/containers/stats.go @@ -147,13 +147,14 @@ func stats(cmd *cobra.Command, args []string) error { func outputStats(reports []define.ContainerStats) error { headers := report.Headers(define.ContainerStats{}, map[string]string{ - "ID": "ID", - "CPUPerc": "CPU %", - "MemUsage": "MEM USAGE / LIMIT", - "MemPerc": "MEM %", - "NetIO": "NET IO", - "BlockIO": "BLOCK IO", - "PIDS": "PIDS", + "ID": "ID", + "CPUPerc": "CPU %", + "MemUsage": "MEM USAGE / LIMIT", + "MemUsageBytes": "MEM USAGE / LIMIT", + "MemPerc": "MEM %", + "NetIO": "NET IO", + "BlockIO": "BLOCK IO", + "PIDS": "PIDS", }) if !statsOptions.NoReset { tm.Clear() @@ -222,10 +223,15 @@ func (s *containerStats) PIDS() string { } return fmt.Sprintf("%d", s.PIDs) } + func (s *containerStats) MemUsage() string { return combineHumanValues(s.ContainerStats.MemUsage, s.ContainerStats.MemLimit) } +func (s *containerStats) MemUsageBytes() string { + return combineBytesValues(s.ContainerStats.MemUsage, s.ContainerStats.MemLimit) +} + func floatToPercentString(f float64) string { strippedFloat, err := utils.RemoveScientificNotationFromFloat(f) if err != nil || strippedFloat == 0 { @@ -242,6 +248,13 @@ func combineHumanValues(a, b uint64) string { return fmt.Sprintf("%s / %s", units.HumanSize(float64(a)), units.HumanSize(float64(b))) } +func combineBytesValues(a, b uint64) string { + if a == 0 && b == 0 { + return "-- / --" + } + return fmt.Sprintf("%s / %s", units.BytesSize(float64(a)), units.BytesSize(float64(b))) +} + func outputJSON(stats []containerStats) error { type jstat struct { Id string `json:"id"` // nolint diff --git a/cmd/podman/pods/stats.go b/cmd/podman/pods/stats.go index 79e7cd8ed..5f79fa016 100644 --- a/cmd/podman/pods/stats.go +++ b/cmd/podman/pods/stats.go @@ -75,11 +75,12 @@ func stats(cmd *cobra.Command, args []string) error { doJSON := report.IsJSON(row) headers := report.Headers(entities.PodStatsReport{}, map[string]string{ - "CPU": "CPU %", - "MemUsage": "MEM USAGE/ LIMIT", - "MEM": "MEM %", - "NET IO": "NET IO", - "BlockIO": "BLOCK IO", + "CPU": "CPU %", + "MemUsage": "MEM USAGE/ LIMIT", + "MemUsageBytes": "MEM USAGE/ LIMIT", + "MEM": "MEM %", + "NET IO": "NET IO", + "BlockIO": "BLOCK IO", }) for ; ; time.Sleep(time.Second) { |