From 44e27c6972e73cc77ae1038bab27e60d00d34551 Mon Sep 17 00:00:00 2001 From: Maxime Mouial Date: Mon, 19 Dec 2016 13:58:20 +0100 Subject: [PATCH] Add Slab, Shared and PageTables metric for VirtualMemory under linux --- mem/mem.go | 3 +++ mem/mem_linux.go | 6 ++++++ mem/mem_test.go | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mem/mem.go b/mem/mem.go index a6c0123..aae4d0d 100644 --- a/mem/mem.go +++ b/mem/mem.go @@ -54,6 +54,9 @@ type VirtualMemoryStat struct { Writeback uint64 `json:"writeback"` Dirty uint64 `json:"dirty"` WritebackTmp uint64 `json:"writebacktmp"` + Shared uint64 `json:"shared"` + Slab uint64 `json:"slab"` + PageTables uint64 `json:"pagetables"` } type SwapMemoryStat struct { diff --git a/mem/mem_linux.go b/mem/mem_linux.go index 31ec3c5..726454b 100644 --- a/mem/mem_linux.go +++ b/mem/mem_linux.go @@ -52,6 +52,12 @@ func VirtualMemory() (*VirtualMemoryStat, error) { ret.WritebackTmp = t * 1024 case "Dirty": ret.Dirty = t * 1024 + case "Shmem": + ret.Shared = t * 1024 + case "Slab": + ret.Slab = t * 1024 + case "PageTables": + ret.PageTables = t * 1024 } } if !memavail { diff --git a/mem/mem_test.go b/mem/mem_test.go index 21582b9..dbdb9bf 100644 --- a/mem/mem_test.go +++ b/mem/mem_test.go @@ -52,7 +52,7 @@ func TestVirtualMemoryStat_String(t *testing.T) { UsedPercent: 30.1, Free: 40, } - e := `{"total":10,"available":20,"used":30,"usedPercent":30.1,"free":40,"active":0,"inactive":0,"wired":0,"buffers":0,"cached":0,"writeback":0,"dirty":0,"writebacktmp":0}` + e := `{"total":10,"available":20,"used":30,"usedPercent":30.1,"free":40,"active":0,"inactive":0,"wired":0,"buffers":0,"cached":0,"writeback":0,"dirty":0,"writebacktmp":0,"shared":0,"slab":0,"pagetables":0}` if e != fmt.Sprintf("%v", v) { t.Errorf("VirtualMemoryStat string is invalid: %v", v) }