author | Matthew Wild <mwild1@gmail.com> |
Fri, 23 Sep 2022 22:40:54 +0100 | |
changeset 5057 | 00e8cc6860cb |
parent 4762 | b9af1ccac98b |
permissions | -rw-r--r-- |
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); |