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 9470256dc97b08b7d259bf90cd4124ed2150bd02..66bee6c895cb8eece9ad2b44adbd6fbf367f2ae4 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 a5d5ab07ed4c03f5c30191557a7e1598634c76e8..fc0e6ea4efbe9cbd263b79715ca92ffe7ffb6fc0 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 3be56931050e940c23969d2225c331c5498cdc0e..0a0ad3eb9a101d6e43fe2dd2f46848784e3503cb 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/container/cg_memory_util.lua b/source/tools/monitor/unity/collector/container/cg_memory_util.lua new file mode 100644 index 0000000000000000000000000000000000000000..e7242c486d05c15495d10e92bf89a12533082cc8 --- /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 ac162005877fa2bc04b482115e3110ce0a9fed65..8801cf35603b262fb6313c1f24c0b871185ba1fe 100644 --- a/source/tools/monitor/unity/collector/plugin.yaml +++ b/source/tools/monitor/unity/collector/plugin.yaml @@ -26,7 +26,10 @@ outline: container: mode: "pods" - luaPlugin: ["cg_cpu_stat_sample", "cg_cpuacct_stat"] + #"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: - "/" - "/kubepods.slice" @@ -258,38 +261,43 @@ 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 + - 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"