--- a/mod_measure_malloc/mod_measure_malloc.lua Tue May 25 16:49:51 2021 +0200
+++ b/mod_measure_malloc/mod_measure_malloc.lua Tue May 25 19:01:54 2021 +0200
@@ -1,17 +1,44 @@
module:set_global();
-local measure = require"core.statsmanager".measure;
+local metric = require"core.statsmanager".metric;
local pposix = require"util.pposix";
-local measures = {};
-setmetatable(measures, {
- __index = function (t, k)
- local m = measure("amount", "memory."..k); t[k] = m; return m;
+local allocated = metric(
+ "gauge", "malloc_heap_allocated", "bytes",
+ "Allocated bytes by mode of allocation",
+ {"mode"}
+);
+
+local used = metric(
+ "gauge", "malloc_heap_used", "bytes",
+ "Used bytes"
+):with_labels();
+
+local unused = metric(
+ "gauge", "malloc_heap_unused", "bytes",
+ "Unused bytes"
+):with_labels();
+
+local returnable = metric(
+ "gauge", "malloc_heap_returnable", "bytes",
+ "Returnable bytes"
+):with_labels();
+
+module:hook("stats-update", function ()
+ meminfo = pposix.meminfo();
+ if meminfo.allocated then
+ allocated:with_labels("sbrk"):set(meminfo.allocated);
end
-});
-module:hook("stats-update", function ()
- local m = measures;
- for k, v in pairs(pposix.meminfo()) do
- m[k](v);
+ if meminfo.allocated_mmap then
+ allocated:with_labels("mmap"):set(meminfo.allocated_mmap);
+ end
+ if meminfo.used then
+ used:set(meminfo.used);
+ end
+ if meminfo.unused then
+ unused:set(meminfo.unused);
+ end
+ if meminfo.returnable then
+ returnable:set(meminfo.returnable);
end
end);