Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add slab to mem plugin #3518

Merged
merged 2 commits into from
Nov 29, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 34 additions & 44 deletions plugins/inputs/system/MEM_README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,34 @@
## Telegraf Plugin: MEM

#### Description

The mem plugin collects memory metrics, defined as follows. For a more complete
explanation of the difference between `used` and `actual_used` RAM, see
[Linux ate my ram](http://www.linuxatemyram.com/).

- **total**: total physical memory available
- **available**: the actual amount of available memory that can be given instantly
to processes that request more memory in bytes; In linux kernel 3.14+, this
is available natively in /proc/meminfo. In other platforms, this is calculated by
summing different memory values depending on the platform
(e.g. free + buffers + cached on Linux).
It is supposed to be used to monitor actual memory usage in a cross platform fashion.
- **available_percent**: Percent of memory available, `available / total * 100`
- **used**: memory used, calculated differently depending on the platform and
designed for informational purposes only.
- **free**: memory not being used at all (zeroed) that is readily available; note
that this doesn't reflect the actual memory available (use 'available' instead).
- **used_percent**: the percentage usage calculated as `used / total * 100`

## Measurements:
#### Raw Memory measurements:

Meta:
- units: bytes
- tags: `nil`

Measurement names:
- mem_total
- mem_available
- mem_used
- mem_free

#### Derived usage percentages:

Meta:
- units: percent (out of 100)
- tags: `nil`

Measurement names:
- mem_used_percent
- mem_available_percent
# Mem Input Plugin

The mem plugin collects system memory metrics.

For a more complete explanation of the difference between *used* and
*actual_used* RAM, see [Linux ate my ram](http://www.linuxatemyram.com/).

### Configuration:
```toml
# Read metrics about memory usage
[[inputs.mem]]
# no configuration
```

### Metrics:

- mem
- fields:
- active (int)
- available (int)
- buffered (int)
- cached (int)
- free (int)
- inactive (int)
- slab (int)
- total (int)
- used (int)
- available_percent (float)
- used_percent (float)

### Example Output:
```
mem cached=7809495040i,inactive=6348988416i,total=20855394304i,available=11378946048i,buffered=927199232i,active=11292905472i,slab=1351340032i,used_percent=45.43883523785713,available_percent=54.56116476214287,used=9476448256i,free=1715331072i 1511894782000000000
```
1 change: 1 addition & 0 deletions plugins/inputs/system/memory.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ func (s *MemStats) Gather(acc telegraf.Accumulator) error {
"buffered": vm.Buffers,
"active": vm.Active,
"inactive": vm.Inactive,
"slab": vm.Slab,
"used_percent": 100 * float64(vm.Used) / float64(vm.Total),
"available_percent": 100 * float64(vm.Available) / float64(vm.Total),
}
Expand Down
2 changes: 2 additions & 0 deletions plugins/inputs/system/memory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ func TestMemStats(t *testing.T) {
Free: 1235,
Active: 8134,
Inactive: 1124,
Slab: 1234,
// Buffers: 771,
// Cached: 4312,
// Wired: 134,
Expand Down Expand Up @@ -54,6 +55,7 @@ func TestMemStats(t *testing.T) {
"buffered": uint64(0),
"active": uint64(8134),
"inactive": uint64(1124),
"slab": uint64(1234),
}
acc.AssertContainsTaggedFields(t, "mem", memfields, make(map[string]string))

Expand Down