2018-07-11 23:43:49 +00:00
|
|
|
package mem
|
2015-12-11 20:07:32 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2018-07-11 23:43:49 +00:00
|
|
|
"github.com/influxdata/telegraf/plugins/inputs/system"
|
2016-01-20 18:57:35 +00:00
|
|
|
"github.com/influxdata/telegraf/testutil"
|
2015-12-11 20:07:32 +00:00
|
|
|
"github.com/shirou/gopsutil/mem"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestMemStats(t *testing.T) {
|
2018-07-11 23:43:49 +00:00
|
|
|
var mps system.MockPS
|
2015-12-11 20:07:32 +00:00
|
|
|
var err error
|
|
|
|
defer mps.AssertExpectations(t)
|
|
|
|
var acc testutil.Accumulator
|
|
|
|
|
|
|
|
vms := &mem.VirtualMemoryStat{
|
|
|
|
Total: 12400,
|
|
|
|
Available: 7600,
|
|
|
|
Used: 5000,
|
|
|
|
Free: 1235,
|
2016-06-01 14:32:47 +00:00
|
|
|
Active: 8134,
|
|
|
|
Inactive: 1124,
|
2017-11-29 18:49:45 +00:00
|
|
|
Slab: 1234,
|
2018-01-03 00:37:11 +00:00
|
|
|
Wired: 134,
|
2015-12-11 20:07:32 +00:00
|
|
|
// Buffers: 771,
|
|
|
|
// Cached: 4312,
|
|
|
|
// Shared: 2142,
|
2018-08-13 23:41:23 +00:00
|
|
|
CommitLimit: 1,
|
|
|
|
CommittedAS: 118680,
|
|
|
|
Dirty: 4,
|
|
|
|
HighFree: 0,
|
|
|
|
HighTotal: 0,
|
|
|
|
HugePageSize: 4096,
|
|
|
|
HugePagesFree: 0,
|
|
|
|
HugePagesTotal: 0,
|
|
|
|
LowFree: 69936,
|
|
|
|
LowTotal: 255908,
|
|
|
|
Mapped: 42236,
|
|
|
|
PageTables: 1236,
|
|
|
|
Shared: 0,
|
2019-11-25 23:31:22 +00:00
|
|
|
SReclaimable: 1923022848,
|
|
|
|
SUnreclaim: 157728768,
|
2018-08-13 23:41:23 +00:00
|
|
|
SwapCached: 0,
|
|
|
|
SwapFree: 524280,
|
|
|
|
SwapTotal: 524280,
|
|
|
|
VMallocChunk: 3872908,
|
|
|
|
VMallocTotal: 3874808,
|
|
|
|
VMallocUsed: 1416,
|
|
|
|
Writeback: 0,
|
|
|
|
WritebackTmp: 0,
|
2015-12-11 20:07:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
mps.On("VMStat").Return(vms, nil)
|
|
|
|
|
|
|
|
err = (&MemStats{&mps}).Gather(&acc)
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
2016-01-05 23:58:35 +00:00
|
|
|
memfields := map[string]interface{}{
|
|
|
|
"total": uint64(12400),
|
|
|
|
"available": uint64(7600),
|
|
|
|
"used": uint64(5000),
|
|
|
|
"available_percent": float64(7600) / float64(12400) * 100,
|
|
|
|
"used_percent": float64(5000) / float64(12400) * 100,
|
|
|
|
"free": uint64(1235),
|
|
|
|
"cached": uint64(0),
|
|
|
|
"buffered": uint64(0),
|
2016-06-01 14:32:47 +00:00
|
|
|
"active": uint64(8134),
|
|
|
|
"inactive": uint64(1124),
|
2018-01-03 00:37:11 +00:00
|
|
|
"wired": uint64(134),
|
2017-11-29 18:49:45 +00:00
|
|
|
"slab": uint64(1234),
|
2018-08-13 23:41:23 +00:00
|
|
|
"commit_limit": uint64(1),
|
|
|
|
"committed_as": uint64(118680),
|
|
|
|
"dirty": uint64(4),
|
|
|
|
"high_free": uint64(0),
|
|
|
|
"high_total": uint64(0),
|
|
|
|
"huge_page_size": uint64(4096),
|
|
|
|
"huge_pages_free": uint64(0),
|
|
|
|
"huge_pages_total": uint64(0),
|
|
|
|
"low_free": uint64(69936),
|
|
|
|
"low_total": uint64(255908),
|
|
|
|
"mapped": uint64(42236),
|
|
|
|
"page_tables": uint64(1236),
|
|
|
|
"shared": uint64(0),
|
2019-11-25 23:31:22 +00:00
|
|
|
"sreclaimable": uint64(1923022848),
|
|
|
|
"sunreclaim": uint64(157728768),
|
2018-08-13 23:41:23 +00:00
|
|
|
"swap_cached": uint64(0),
|
|
|
|
"swap_free": uint64(524280),
|
|
|
|
"swap_total": uint64(524280),
|
|
|
|
"vmalloc_chunk": uint64(3872908),
|
|
|
|
"vmalloc_total": uint64(3874808),
|
|
|
|
"vmalloc_used": uint64(1416),
|
|
|
|
"write_back": uint64(0),
|
|
|
|
"write_back_tmp": uint64(0),
|
2016-01-05 23:58:35 +00:00
|
|
|
}
|
2016-01-06 00:28:15 +00:00
|
|
|
acc.AssertContainsTaggedFields(t, "mem", memfields, make(map[string]string))
|
2015-12-11 20:07:32 +00:00
|
|
|
|
2016-01-27 23:15:14 +00:00
|
|
|
acc.Metrics = nil
|
2015-12-11 20:07:32 +00:00
|
|
|
}
|