Annotate

mod_measure_malloc/mod_measure_malloc.lua @ 5698:17ea26cf7259

mod_storage_s3: Use '@' as placeholder for empty (host) store slots Used when the server stores things for itself.
author Kim Alvefur <zash@zash.se>
date Sat, 14 Oct 2023 22:49:57 +0200
parent 4758:b9af1ccac98b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1623
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
4575
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
3 local metric = require"core.statsmanager".metric;
2708
07d6077d2db7 mod_measure_memory: Split out mallinfo measuring into a separate module, mod_measure_malloc
Kim Alvefur <zash@zash.se>
parents: 2436
diff changeset
4 local pposix = require"util.pposix";
1623
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
4575
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
6 local allocated = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
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: 3367
diff changeset
9 {"mode"}
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
10 );
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
11
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
12 local used = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
diff changeset
14 "Used bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
15 ):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
16
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
17 local unused = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
diff changeset
19 "Unused bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
20 ):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
21
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
22 local returnable = metric(
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
diff changeset
24 "Returnable bytes"
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
25 ):with_labels();
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
26
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
diff changeset
27 module:hook("stats-update", function ()
4758
b9af1ccac98b mod_measure_malloc: Fix accidental global variable write [luacheck]
Kim Alvefur <zash@zash.se>
parents: 4575
diff changeset
28 local meminfo = pposix.meminfo();
4575
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
diff changeset
30 allocated:with_labels("sbrk"):set(meminfo.allocated);
1623
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
4575
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
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: 3367
diff changeset
34 end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
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: 3367
diff changeset
37 end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
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: 3367
diff changeset
40 end
5b4f43b90766 mod_measure_malloc: port to most recent trunk statistics API
Jonas Schäfer <jonas@wielicki.name>
parents: 3367
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: 3367
diff changeset
42 returnable:set(meminfo.returnable);
2708
07d6077d2db7 mod_measure_memory: Split out mallinfo measuring into a separate module, mod_measure_malloc
Kim Alvefur <zash@zash.se>
parents: 2436
diff changeset
43 end
1623
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);