Software /
code /
prosody-modules
File
mod_measure_conn_buffers/mod_measure_conn_buffers.lua @ 6055:23c4c61a1068
mod_muc_gateway_optimize: New module to optimize muc presence to remote gateways
Some gateways are happy to receive presence for each participant
in MUCs that they are in only once, to any one of their joined JIDs.
author | Stephen Paul Weber <singpolyma@singpolyma.net> |
---|---|
date | Sun, 17 Nov 2024 22:32:52 -0500 |
parent | 6050:81805f11263c |
line wrap: on
line source
module:set_global(); local measure_total_pending_tx = module:measure("total_pending_tx", "amount"); local server = require "net.server"; if server.get_backend() ~= "epoll" or not server.loop.fds then module:log_status("error", "This module is not compatible with your network_backend, only epoll is supported"); return; end local fds = server.loop.fds; module:hook("stats-update", function () local pending_tx = 0; for _, conn in pairs(fds) do local buffer = conn.writebuffer; if buffer then if type(buffer) == "string" then pending_tx = pending_tx + #buffer; elseif buffer._length then -- dbuffer pending_tx = pending_tx + buffer._length; else -- simple table for i = 1, #buffer do pending_tx = pending_tx + #buffer[i]; end end end end measure_total_pending_tx(pending_tx); end);