aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-09-12 15:01:16 +0200
committerKim Alvefur <zash@zash.se>2016-09-12 15:01:16 +0200
commitab34bf8a9361c4b6da4fa20b092c6a8028c34f9c (patch)
treedc239f7148a624cde4a4ede7b33319fa98ed0287
parent8460485ee0ab18d480d45d427445e2862c21c3d6 (diff)
downloadprosody-ab34bf8a9361c4b6da4fa20b092c6a8028c34f9c.tar.gz
prosody-ab34bf8a9361c4b6da4fa20b092c6a8028c34f9c.zip
mod_c2s, mod_s2s: Switch connection counting to 'amount' type and enumerate once per statistics interval
-rw-r--r--plugins/mod_c2s.lua8
-rw-r--r--plugins/mod_s2s/mod_s2s.lua13
2 files changed, 6 insertions, 15 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index 1b5dd91a..041eb1f2 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -27,7 +27,7 @@ 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 measure_connections = module:measure("connections", "amount");
local sessions = module:shared("sessions");
local core_process_stanza = prosody.core_process_stanza;
@@ -36,7 +36,7 @@ local hosts = prosody.hosts;
local stream_callbacks = { default_ns = "jabber:client" };
local listener = {};
-do
+module:hook("stats-update", function ()
-- Connection counter resets to 0 on load and reload
-- Bump it up to current value
local count = 0;
@@ -44,7 +44,7 @@ do
count = count + 1;
end
measure_connections(count);
-end
+end);
--- Stream events handlers
local stream_xmlns_attr = {xmlns='urn:ietf:params:xml:ns:xmpp-streams'};
@@ -207,7 +207,6 @@ end, 200);
--- Port listener
function listener.onconnect(conn)
- measure_connections(1);
local session = sm_new_session(conn);
sessions[conn] = session;
@@ -276,7 +275,6 @@ 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 ae9a746a..d190d631 100644
--- a/plugins/mod_s2s/mod_s2s.lua
+++ b/plugins/mod_s2s/mod_s2s.lua
@@ -37,13 +37,13 @@ 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 measure_connections = module:measure("connections", "amount");
local sessions = module:shared("sessions");
local log = module._log;
-do
+module:hook("stats-update", function ()
-- Connection counter resets to 0 on load and reload
-- Bump it up to current value
local count = 0;
@@ -51,7 +51,7 @@ do
count = count + 1;
end
measure_connections(count);
-end
+end);
--- Handle stanzas to remote domains
@@ -588,7 +588,6 @@ 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
@@ -619,13 +618,7 @@ function listener.onstatus(conn, status)
end
end
-function listener.ontimeout(conn)
- -- Called instead of onconnect when the connection times out
- measure_connections(1);
-end
-
function listener.ondisconnect(conn, err)
- measure_connections(-1);
local session = sessions[conn];
if session then
sessions[conn] = nil;