From ea5b7492fe9894ed85fa0b0c1260cbb479c1c4ce Mon Sep 17 00:00:00 2001 From: Etienne Champetier Date: Fri, 8 Dec 2017 19:03:37 -0800 Subject: [PATCH] prometheus-node-exporter-lua: rework cpu collector replace 2 string.match and 1 string.gmatch (space_split) by 1 string.match Signed-off-by: Etienne Champetier --- .../files/usr/lib/lua/prometheus-collectors/cpu.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua index 0f7526eff..9d083dbf0 100644 --- a/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua +++ b/utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua @@ -13,12 +13,13 @@ local function scrape() "softirq", "steal", "guest", "guest_nice"} local i = 0 local cpu_metric = metric("node_cpu", "counter") - while string.match(stat, string.format("cpu%d ", i)) do - local cpu = space_split(string.match(stat, string.format("cpu%d ([0-9 ]+)", i))) - local labels = {cpu = "cpu" .. i} + while true do + local cpu = {string.match(stat, "cpu"..i.." (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")} + if #cpu ~= 10 then + break + end for ii, mode in ipairs(cpu_mode) do - labels['mode'] = mode - cpu_metric(labels, cpu[ii] / 100) + cpu_metric({cpu="cpu"..i, mode=mode}, cpu[ii] / 100) end i = i + 1 end