aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2015-04-26 00:06:11 +0200
committerKim Alvefur <zash@zash.se>2015-04-26 00:06:11 +0200
commit48652fb9d3b1eeb4dc44460abf3ba2060cf5bb91 (patch)
treeb0e5bddeb790f735271b1daca5e1ea612a7a0dba
parente5f23f0fef9c7911ed00e9099ddf72438dd5b588 (diff)
downloadprosody-48652fb9d3b1eeb4dc44460abf3ba2060cf5bb91.tar.gz
prosody-48652fb9d3b1eeb4dc44460abf3ba2060cf5bb91.zip
mod_c2s, mod_s2s: Collect statistics on number of connections
-rw-r--r--plugins/mod_c2s.lua4
-rw-r--r--plugins/mod_s2s/mod_s2s.lua4
2 files changed, 8 insertions, 0 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index 4238b2e7..1423eaa3 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -28,6 +28,8 @@ local c2s_timeout = module:get_option_number("c2s_timeout");
local stream_close_timeout = module:get_option_number("c2s_close_timeout", 5);
local opt_keepalives = module:get_option_boolean("c2s_tcp_keepalives", module:get_option_boolean("tcp_keepalives", true));
+local measure_connections = module:measure("connections", "counter");
+
local sessions = module:shared("sessions");
local core_process_stanza = prosody.core_process_stanza;
local hosts = prosody.hosts;
@@ -198,6 +200,7 @@ end
--- Port listener
function listener.onconnect(conn)
+ measure_connections(1);
local session = sm_new_session(conn);
sessions[conn] = session;
@@ -270,6 +273,7 @@ function listener.onincoming(conn, data)
end
function listener.ondisconnect(conn, err)
+ measure_connections(-1);
local session = sessions[conn];
if session then
(session.log or log)("info", "Client disconnected: %s", err or "connection closed");
diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua
index a58c6421..1ce63a8b 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -37,6 +37,8 @@ local secure_domains, insecure_domains =
module:get_option_set("s2s_secure_domains", {})._items, module:get_option_set("s2s_insecure_domains", {})._items;
local require_encryption = module:get_option_boolean("s2s_require_encryption", false);
+local measure_connections = module:measure("connections", "counter");
+
local sessions = module:shared("sessions");
local log = module._log;
@@ -574,6 +576,7 @@ local function initialize_session(session)
end
function listener.onconnect(conn)
+ measure_connections(1);
conn:setoption("keepalive", opt_keepalives);
local session = sessions[conn];
if not session then -- New incoming connection
@@ -605,6 +608,7 @@ function listener.onstatus(conn, status)
end
function listener.ondisconnect(conn, err)
+ measure_connections(-1);
local session = sessions[conn];
if session then
sessions[conn] = nil;