From 69d9a4322fce80e609b4956a49dd56ee755da5f5 Mon Sep 17 00:00:00 2001 From: an0nfunc <40771419+an0nfunc@users.noreply.github.com> Date: Tue, 7 Mar 2023 09:42:53 +0100 Subject: [PATCH] feat(inputs.cgroup): Added support for cpu.stat (#12798) --- plugins/inputs/cgroup/cgroup_linux.go | 2 +- plugins/inputs/cgroup/cgroup_test.go | 17 ++++++++++++----- plugins/inputs/cgroup/testdata/cpu/cpu.stat | 4 ++++ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 plugins/inputs/cgroup/testdata/cpu/cpu.stat diff --git a/plugins/inputs/cgroup/cgroup_linux.go b/plugins/inputs/cgroup/cgroup_linux.go index 5b8fad6fe..2b73273e4 100644 --- a/plugins/inputs/cgroup/cgroup_linux.go +++ b/plugins/inputs/cgroup/cgroup_linux.go @@ -172,7 +172,7 @@ type fileFormat struct { parser func(measurement string, fields map[string]interface{}, b []byte) } -const keyPattern = "[[:alnum:]:_]+" +const keyPattern = "[[:alnum:]:_.]+" const valuePattern = "[\\d-]+" var fileFormats = [...]fileFormat{ diff --git a/plugins/inputs/cgroup/cgroup_test.go b/plugins/inputs/cgroup/cgroup_test.go index d8b19ead1..ead3bac6a 100644 --- a/plugins/inputs/cgroup/cgroup_test.go +++ b/plugins/inputs/cgroup/cgroup_test.go @@ -59,7 +59,10 @@ func TestCgroupStatistics_2(t *testing.T) { var cg = &CGroup{ Paths: []string{"testdata/cpu"}, - Files: []string{"cpuacct.usage_percpu"}, + Files: []string{ + "cpuacct.usage_percpu", + "cpu.stat", + }, } require.NoError(t, acc.GatherError(cg.Gather)) @@ -70,10 +73,14 @@ func TestCgroupStatistics_2(t *testing.T) { "path": "testdata/cpu", }, map[string]interface{}{ - "cpuacct.usage_percpu.0": int64(-1452543795404), - "cpuacct.usage_percpu.1": int64(1376681271659), - "cpuacct.usage_percpu.2": int64(1450950799997), - "cpuacct.usage_percpu.3": int64(-1473113374257), + "cpu.stat.core_sched.force_idle_usec": int64(0), + "cpu.stat.system_usec": int64(103537582650), + "cpu.stat.usage_usec": int64(614953149468), + "cpu.stat.user_usec": int64(511415566817), + "cpuacct.usage_percpu.0": int64(-1452543795404), + "cpuacct.usage_percpu.1": int64(1376681271659), + "cpuacct.usage_percpu.2": int64(1450950799997), + "cpuacct.usage_percpu.3": int64(-1473113374257), }, time.Unix(0, 0), ), diff --git a/plugins/inputs/cgroup/testdata/cpu/cpu.stat b/plugins/inputs/cgroup/testdata/cpu/cpu.stat new file mode 100644 index 000000000..de2e627c1 --- /dev/null +++ b/plugins/inputs/cgroup/testdata/cpu/cpu.stat @@ -0,0 +1,4 @@ +usage_usec 614953149468 +user_usec 511415566817 +system_usec 103537582650 +core_sched.force_idle_usec 0