From 7f12695fe498ac42dd5a176939dee28c6b9ccb92 Mon Sep 17 00:00:00 2001 From: Hailong Liu Date: Tue, 9 May 2023 06:17:44 +0000 Subject: [PATCH 1/2] unity/container: Add memory util plugin Signed-off-by: Hailong Liu --- .../collector/container/cg_memory_util.lua | 81 +++++++++++++++++++ .../tools/monitor/unity/collector/plugin.yaml | 11 ++- 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 source/tools/monitor/unity/collector/container/cg_memory_util.lua diff --git a/source/tools/monitor/unity/collector/container/cg_memory_util.lua b/source/tools/monitor/unity/collector/container/cg_memory_util.lua new file mode 100644 index 00000000..e7242c48 --- /dev/null +++ b/source/tools/monitor/unity/collector/container/cg_memory_util.lua @@ -0,0 +1,81 @@ +require("common.class") +local pystring = require("common.pystring") +local CvProc = require("collector.vproc") +local root = "sys/fs/cgroup/memory/" +local dfile = "/memory.stat" +local usage = "/memory.usage_in_bytes" +local limit = "/memory.limit_in_bytes" +local system = require("common.system") + +local CgMemUtil = class("cg_memory_util", CvProc) + +--ls{}, (pod_name and docker_name +function CgMemUtil:_init_(proto, pffi, mnt, path, ls) + CvProc._init_(self, proto, pffi, mnt, root .. path .. dfile) + self.ls = ls + self.path = mnt..root..path..dfile + self.limitpath = mnt..root..path..limit + self.usagepath = mnt..root..path..usage + self.limit = 0 + self.usage = 0 +end + +function CgMemUtil:_getLimit_() + local pfile = io.open(self.limitpath, "r") + local line = pfile:read() + self.limit = tonumber(line) + io.close(pfile) +end + +function CgMemUtil:_getUsage_() + local pfile = io.open(self.usagepath, "r") + local line = pfile:read() + self.usage = tonumber(line) + io.close(pfile) +end + +function CgMemUtil:proc(elapsed, lines) + local c = 1 + local k = 1 + CvProc.proc(self) + self:_getLimit_() + self:_getUsage_() + local values = {} + for line in io.lines(self.pFile) do + local name + local cell = pystring:split(line) + local num = #cell + local val = tonumber(cell[num]) + --we assume that: memory.use_hierarchy is "1" + if ("total_cache" == cell[1]) or ("total_rss" == cell[1]) then + name = string.sub(cell[1], 7) + values[k] = { + name = name, + value = val + } + k = k + 1 + local ratio = (100.00*val) / tonumber(self.usage) + values[k] = { + name = name.."_ratio", + value = ratio + } + k = k + 1 + c = c + 1 + end + if c > 3 then + break + end + end + values[k] = { + name = "usage", + value = self.usage + } + values[k+1] = { + name = "mem_util", + value = (tonumber(self.usage)*100.0)/ tonumber(self.limit) + } + self:appendLine(self:_packProto("cg_memory_util", self.ls, values)) + self:push(lines) +end + +return CgMemUtil diff --git a/source/tools/monitor/unity/collector/plugin.yaml b/source/tools/monitor/unity/collector/plugin.yaml index ac162005..3941445b 100644 --- a/source/tools/monitor/unity/collector/plugin.yaml +++ b/source/tools/monitor/unity/collector/plugin.yaml @@ -26,7 +26,9 @@ outline: container: mode: "pods" - luaPlugin: ["cg_cpu_stat_sample", "cg_cpuacct_stat"] + luaPlugin: ["cg_cpu_stat", "cg_cpuacct_stat", "cg_cpuacct_proc_stat", "cg_cpuacct_wait_latency", + "cg_memory_dcmp_latency", "cg_memory_drcm_latency", "cg_memory_fail_cnt", "cg_memory_util", + "cg_pmu_events"] directCgPath: - "/" - "/kubepods.slice" @@ -258,10 +260,15 @@ metrics: head: value help: "pmu events of percpu" type: "gauge" + - title: sysak_cg_memory_util + from: cg_memory_util + head: value + help: "sysak_cg_memory_util" + type: "gauge" - title: sysak_cg_memfail_cnt from: cg_memfail_cnt head: value - help: "sysak_cg_memFail_cnt" + help: "sysak_cg_memfail_cnt" type: "gauge" - title: sysak_cg_memdrcm_latency from: cg_memdrcm_latency -- Gitee From aa7dbe98ed92c22dcbbe159e67261e12b248d4be Mon Sep 17 00:00:00 2001 From: Hailong Liu Date: Tue, 9 May 2023 07:31:31 +0000 Subject: [PATCH 2/2] unity/container: Fix the table name and tile Signed-off-by: Hailong Liu --- .../container/cg_cpuacct_proc_stat.lua | 4 +-- .../collector/container/cg_cpuacct_stat.lua | 2 +- .../container/cg_memory_dcmp_latency.lua | 2 +- .../tools/monitor/unity/collector/plugin.yaml | 27 ++++++++++--------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/source/tools/monitor/unity/collector/container/cg_cpuacct_proc_stat.lua b/source/tools/monitor/unity/collector/container/cg_cpuacct_proc_stat.lua index 9470256d..66bee6c8 100644 --- a/source/tools/monitor/unity/collector/container/cg_cpuacct_proc_stat.lua +++ b/source/tools/monitor/unity/collector/container/cg_cpuacct_proc_stat.lua @@ -12,7 +12,7 @@ local dfile = "/cpuacct.proc_stat" local procstat = "proc/stat" local system = require("common.system") -local CgProcStat = class("cg_proc_stat", CvProc) +local CgProcStat = class("cg_cpuacct_proc_stat", CvProc) --ls{}, (pod_name and docker_name function CgProcStat:_init_(proto, pffi, mnt, path, ls) @@ -111,7 +111,7 @@ function CgProcStat:proc(elapsed, lines) name = "total", value = tonumber((self.conTotal*100.0)/self.hostCpuSum) } - self:appendLine(self:_packProto("cg_proc_stat", self.ls, values)) + self:appendLine(self:_packProto("cg_cpuacct_proc_stat", self.ls, values)) self:push(lines) end diff --git a/source/tools/monitor/unity/collector/container/cg_cpuacct_stat.lua b/source/tools/monitor/unity/collector/container/cg_cpuacct_stat.lua index a5d5ab07..fc0e6ea4 100644 --- a/source/tools/monitor/unity/collector/container/cg_cpuacct_stat.lua +++ b/source/tools/monitor/unity/collector/container/cg_cpuacct_stat.lua @@ -6,7 +6,7 @@ local dfile = "/cpuacct.stat" local procstat = "proc/stat" local system = require("common.system") -local CgCpuacctStat = class("cg_proc_stat", CvProc) +local CgCpuacctStat = class("cg_cpuacct_stat", CvProc) --ls{}, (pod_name and docker_name function CgCpuacctStat:_init_(proto, pffi, mnt, path, ls) diff --git a/source/tools/monitor/unity/collector/container/cg_memory_dcmp_latency.lua b/source/tools/monitor/unity/collector/container/cg_memory_dcmp_latency.lua index 3be56931..0a0ad3eb 100644 --- a/source/tools/monitor/unity/collector/container/cg_memory_dcmp_latency.lua +++ b/source/tools/monitor/unity/collector/container/cg_memory_dcmp_latency.lua @@ -37,7 +37,7 @@ function CgMemDcmpLatency:proc(elapsed, lines) } c = c + 1 end - self:appendLine(self:_packProto("cg_memmcmp_latency", self.ls, values)) + self:appendLine(self:_packProto("cg_memdcmp_latency", self.ls, values)) self:push(lines) end diff --git a/source/tools/monitor/unity/collector/plugin.yaml b/source/tools/monitor/unity/collector/plugin.yaml index 3941445b..8801cf35 100644 --- a/source/tools/monitor/unity/collector/plugin.yaml +++ b/source/tools/monitor/unity/collector/plugin.yaml @@ -26,7 +26,8 @@ outline: container: mode: "pods" - luaPlugin: ["cg_cpu_stat", "cg_cpuacct_stat", "cg_cpuacct_proc_stat", "cg_cpuacct_wait_latency", + #"cg_cpuacct_stat" is a substitute of cg_cpuacct_proc_stat + luaPlugin: ["cg_cpu_stat", "cg_cpuacct_proc_stat", "cg_cpuacct_wait_latency", "cg_memory_dcmp_latency", "cg_memory_drcm_latency", "cg_memory_fail_cnt", "cg_memory_util", "cg_pmu_events"] directCgPath: @@ -270,33 +271,33 @@ metrics: head: value help: "sysak_cg_memfail_cnt" type: "gauge" - - title: sysak_cg_memdrcm_latency + - title: sysak_cg_mem_drcm_latency from: cg_memdrcm_latency head: value - help: "sysak_cg_memdrcm_latency" + help: "sysak_cg_mem_drcm_latency" type: "gauge" - - title: sysak_cg_memmcmp_latency - from: cg_memmcmp_latency + - title: sysak_cg_mem_dcmp_latency + from: cg_memdcmp_latency head: value - help: "sysak_cg_memmcmp_latency" + help: "sysak_cg_mem_dcmp_latency" type: "gauge" - - title: sysak_cg_wait_latency + - title: sysak_cg_cpuacct_wait_latency from: cg_wait_latency head: value - help: "sysak_cg_wait_latency" + help: "sysak_cg_cpuacct_wait_latency" type: "gauge" - title: sysak_cg_cpuacct_proc_stat from: cg_cpuacct_proc_stat head: value help: "sysak_cg_cpuacct_proc_stat" type: "gauge" +# - title: sysak_cg_cpuacct_stat +# from: cg_cpuacct_stat +# head: value +# help: "sysak_cg_cpuacct_stat, this is substitute of cg_cpuacct_proc_stat" +# type: "gauge" - title: sysak_cg_cpu_stat from: cg_cpu_stat head: value help: "sysak_cg_cpu_stat" type: "gauge" - - title: sysak_cg_cpuacct_stat - from: cg_cpuacct_stat - head: value - help: "cpuacct/cpuacct.stat" - type: "gauge" -- Gitee