Browse code

change memory usage display

using standard unix postfixes add unit test for display
also change doc for memory usage display change
for example GiB will be GB

Signed-off-by: Sun Jianbo <wonderflow@zju.edu.cn>

jianbosun authored on 2015/04/08 13:25:41
Showing 4 changed files
... ...
@@ -99,9 +99,9 @@ func (s *containerStats) Display(w io.Writer) error {
99 99
 	fmt.Fprintf(w, "%s\t%.2f%%\t%s/%s\t%.2f%%\t%s/%s\n",
100 100
 		s.Name,
101 101
 		s.CPUPercentage,
102
-		units.BytesSize(s.Memory), units.BytesSize(s.MemoryLimit),
102
+		units.HumanSize(s.Memory), units.HumanSize(s.MemoryLimit),
103 103
 		s.MemoryPercentage,
104
-		units.BytesSize(s.NetworkRx), units.BytesSize(s.NetworkTx))
104
+		units.HumanSize(s.NetworkRx), units.HumanSize(s.NetworkTx))
105 105
 	return nil
106 106
 }
107 107
 
108 108
new file mode 100644
... ...
@@ -0,0 +1,29 @@
0
+package client
1
+
2
+import (
3
+	"bytes"
4
+	"sync"
5
+	"testing"
6
+)
7
+
8
+func TestDisplay(t *testing.T) {
9
+	c := &containerStats{
10
+		Name:             "app",
11
+		CPUPercentage:    30.0,
12
+		Memory:           100 * 1024 * 1024.0,
13
+		MemoryLimit:      2048 * 1024 * 1024.0,
14
+		MemoryPercentage: 100.0 / 2048.0 * 100.0,
15
+		NetworkRx:        100 * 1024 * 1024,
16
+		NetworkTx:        800 * 1024 * 1024,
17
+		mu:               sync.RWMutex{},
18
+	}
19
+	var b bytes.Buffer
20
+	if err := c.Display(&b); err != nil {
21
+		t.Fatalf("c.Display() gave error: %s", err)
22
+	}
23
+	got := b.String()
24
+	want := "app\t30.00%\t104.9 MB/2.147 GB\t4.88%\t104.9 MB/838.9 MB\n"
25
+	if got != want {
26
+		t.Fatalf("c.Display() = %q, want %q", got, want)
27
+	}
28
+}
... ...
@@ -24,5 +24,5 @@ Run **docker stats** with multiple containers.
24 24
     $ docker stats redis1 redis2
25 25
     CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
26 26
     redis1              0.07%               796 KiB/64 MiB      1.21%               788 B/648 B
27
-    redis2              0.07%               2.746 MiB/64 MiB    4.29%               1.266 KiB/648 B
27
+    redis2              0.07%               2.746 MB/64 MB      4.29%               1.266 KB/648 B
28 28
 
... ...
@@ -2336,7 +2336,7 @@ Running `docker stats` on multiple containers
2336 2336
     $ docker stats redis1 redis2
2337 2337
     CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
2338 2338
     redis1              0.07%               796 KiB/64 MiB      1.21%               788 B/648 B
2339
-    redis2              0.07%               2.746 MiB/64 MiB    4.29%               1.266 KiB/648 B
2339
+    redis2              0.07%               2.746 MB/64 MB      4.29%               1.266 KB/648 B
2340 2340
 
2341 2341
 
2342 2342
 The `docker stats` command will only return a live stream of data for running