mod_measure_malloc/mod_measure_malloc.lua
author Matthew Wild <mwild1@gmail.com>
Sat, 24 Sep 2022 09:26:26 +0100
changeset 5063 5f1120c284c5
parent 4762 b9af1ccac98b
permissions -rw-r--r--
mod_cloud_notify_extensions: Add note about dependency Noting here because people might not click through to see it on the mod_cloud_notify_encrypted page.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1627
2c39af0fb93b mod_measure_memory: Module for polling memory useage from Lua, meminfo() and /proc depending on availability
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
module:set_global();
2c39af0fb93b mod_measure_memory: Module for polling memory useage from Lua, meminfo() and /proc depending on availability
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
4579
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
     3
local metric = require"core.statsmanager".metric;
2712
07d6077d2db7 mod_measure_memory: Split out mallinfo measuring into a separate module, mod_measure_malloc
Kim Alvefur <zash@zash.se>
parents: 2440
diff changeset
     4
local pposix = require"util.pposix";
1627
2c39af0fb93b mod_measure_memory: Module for polling memory useage from Lua, meminfo() and /proc depending on availability
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
4579
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
     6
local allocated = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
     7
	"gauge", "malloc_heap_allocated", "bytes",
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
     8
	"Allocated bytes by mode of allocation",
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
     9
	{"mode"}
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    10
);
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    11
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    12
local used = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    13
	"gauge", "malloc_heap_used", "bytes",
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    14
	"Used bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    15
):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    16
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    17
local unused = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    18
	"gauge", "malloc_heap_unused", "bytes",
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    19
	"Unused bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    20
):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    21
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    22
local returnable = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    23
	"gauge", "malloc_heap_returnable", "bytes",
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    24
	"Returnable bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    25
):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    26
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    27
module:hook("stats-update", function ()
4762
b9af1ccac98b mod_measure_malloc: Fix accidental global variable write [luacheck]
Kim Alvefur <zash@zash.se>
parents: 4579
diff changeset
    28
	local meminfo = pposix.meminfo();
4579
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    29
	if meminfo.allocated then
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    30
		allocated:with_labels("sbrk"):set(meminfo.allocated);
1627
2c39af0fb93b mod_measure_memory: Module for polling memory useage from Lua, meminfo() and /proc depending on availability
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
	end
4579
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    32
	if meminfo.allocated_mmap then
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    33
		allocated:with_labels("mmap"):set(meminfo.allocated_mmap);
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    34
	end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    35
	if meminfo.used then
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    36
		used:set(meminfo.used);
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    37
	end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    38
	if meminfo.unused then
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    39
		unused:set(meminfo.unused);
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    40
	end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    41
	if meminfo.returnable then
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3371
diff changeset
    42
		returnable:set(meminfo.returnable);
2712
07d6077d2db7 mod_measure_memory: Split out mallinfo measuring into a separate module, mod_measure_malloc
Kim Alvefur <zash@zash.se>
parents: 2440
diff changeset
    43
	end
1627
2c39af0fb93b mod_measure_memory: Module for polling memory useage from Lua, meminfo() and /proc depending on availability
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    44
end);