Mercurial > prosody-modules
comparison mod_statistics/stats.lib.lua @ 1076:5616cab8b6d6
mod_statistics/stats.lib.lua: Better s2s session counting
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 15 Jun 2013 20:56:19 +0100 |
parents | 164ed759b1d2 |
children | b73d44afdafa |
comparison
equal
deleted
inserted
replaced
1075:164ed759b1d2 | 1076:5616cab8b6d6 |
---|---|
3 | 3 |
4 local last_cpu_wall, last_cpu_clock; | 4 local last_cpu_wall, last_cpu_clock; |
5 local get_time = require "socket".gettime; | 5 local get_time = require "socket".gettime; |
6 | 6 |
7 local active_sessions, active_jids = {}, {}; | 7 local active_sessions, active_jids = {}, {}; |
8 local s2s_sessions = module:shared"/*/s2s/sessions"; | |
9 local c2s_sessions = module:shared"/*/c2s/sessions"; | |
8 | 10 |
9 local stats = { | 11 local stats = { |
10 total_users = { | 12 total_users = { |
11 get = function () return it.count(it.keys(bare_sessions)); end | 13 get = function () return it.count(it.keys(bare_sessions)); end |
12 }; | 14 }; |
13 total_c2s = { | 15 total_c2s = { |
14 get = function () return it.count(it.keys(full_sessions)); end | 16 get = function () return it.count(it.keys(full_sessions)); end |
15 }; | 17 }; |
16 total_s2sin = { | 18 total_s2sin = { |
17 get = function () return it.count(it.keys(prosody.incoming_s2s)); end | 19 get = function () local i = 0; for conn,sess in next,s2s_sessions do if sess.direction == "incoming" then i = i + 1 end end return i end |
18 }; | 20 }; |
19 total_s2sout = { | 21 total_s2sout = { |
20 get = function () | 22 get = function () local i = 0; for conn,sess in next,s2s_sessions do if sess.direction == "outgoing" then i = i + 1 end end return i end |
21 local count = 0; | 23 }; |
22 for host, host_session in pairs(hosts) do | 24 total_s2s = { |
23 count = count + it.count(it.keys(host_session.s2sout)); | 25 get = function () return it.count(it.keys(s2s_sessions)); end |
24 end | |
25 return count; | |
26 end | |
27 }; | 26 }; |
28 total_component = { | 27 total_component = { |
29 get = function () | 28 get = function () |
30 local count = 0; | 29 local count = 0; |
31 for host, host_session in pairs(hosts) do | 30 for host, host_session in pairs(hosts) do |