Skip to content

Commit

Permalink
Add usage_busy and time_busy CPU metrics. Fixes #2710.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bob Shannon committed Jun 20, 2017
1 parent 37e0180 commit c1b7bb1
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
2 changes: 2 additions & 0 deletions plugins/inputs/system/CPU_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Measurement names:
- cpu_time_user
- cpu_time_system
- cpu_time_idle
- cpu_time_busy
- cpu_time_nice
- cpu_time_iowait
- cpu_time_irq
Expand All @@ -86,6 +87,7 @@ Measurement names:
- cpu_usage_user
- cpu_usage_system
- cpu_usage_idle
- cpu_usage_busy
- cpu_usage_nice
- cpu_usage_iowait
- cpu_usage_irq
Expand Down
7 changes: 6 additions & 1 deletion plugins/inputs/system/cpu.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ func (s *CPUStats) Gather(acc telegraf.Accumulator) error {
"time_user": cts.User,
"time_system": cts.System,
"time_idle": cts.Idle,
"time_busy": total - cts.Idle,
"time_nice": cts.Nice,
"time_iowait": cts.Iowait,
"time_irq": cts.Irq,
Expand Down Expand Up @@ -90,10 +91,14 @@ func (s *CPUStats) Gather(acc telegraf.Accumulator) error {
if totalDelta == 0 {
continue
}

usage_idle := 100 * (cts.Idle - lastCts.Idle) / totalDelta

fieldsG := map[string]interface{}{
"usage_user": 100 * (cts.User - lastCts.User - (cts.Guest - lastCts.Guest)) / totalDelta,
"usage_system": 100 * (cts.System - lastCts.System) / totalDelta,
"usage_idle": 100 * (cts.Idle - lastCts.Idle) / totalDelta,
"usage_idle": usage_idle,
"usage_busy": 100 - usage_idle,
"usage_nice": 100 * (cts.Nice - lastCts.Nice - (cts.GuestNice - lastCts.GuestNice)) / totalDelta,
"usage_iowait": 100 * (cts.Iowait - lastCts.Iowait) / totalDelta,
"usage_irq": 100 * (cts.Irq - lastCts.Irq) / totalDelta,
Expand Down
3 changes: 3 additions & 0 deletions plugins/inputs/system/cpu_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ func TestCPUStats(t *testing.T) {
assertContainsTaggedFloat(t, &acc, "cpu", "time_user", 8.8, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_system", 8.2, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_idle", 80.1, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_busy", 19.9, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_nice", 1.3, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_iowait", 0.8389, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_irq", 0.6, 0, cputags)
Expand All @@ -78,6 +79,7 @@ func TestCPUStats(t *testing.T) {
assertContainsTaggedFloat(t, &acc, "cpu", "time_user", 24.9, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_system", 10.9, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_idle", 157.9798, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_busy", 42.0202, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_nice", 3.5, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_iowait", 0.929, 0, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "time_irq", 1.2, 0, cputags)
Expand All @@ -89,6 +91,7 @@ func TestCPUStats(t *testing.T) {
assertContainsTaggedFloat(t, &acc, "cpu", "usage_user", 7.8, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_system", 2.7, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_idle", 77.8798, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_busy", 22.1202, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_nice", 0, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_iowait", 0.0901, 0.0005, cputags)
assertContainsTaggedFloat(t, &acc, "cpu", "usage_irq", 0.6, 0.0005, cputags)
Expand Down

0 comments on commit c1b7bb1

Please sign in to comment.