prometheus-node-exporter-lua: rework cpu collector
authorEtienne Champetier <champetier.etienne@gmail.com>
Sat, 9 Dec 2017 03:03:37 +0000 (19:03 -0800)
committerEtienne Champetier <champetier.etienne@gmail.com>
Sat, 9 Dec 2017 05:22:16 +0000 (21:22 -0800)
replace 2 string.match and 1 string.gmatch (space_split)
by 1 string.match

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/cpu.lua

index 0f7526eff05cfb4652a084b6b5952bd3582b4419..9d083dbf0402d9a67bc39dce01c3838d7e581928 100644 (file)
@@ -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