annotate mod_statistics_statsd/mod_statistics_statsd.lua @ 3532:85c357b69eec

mod_csi_muc_priorities: Reduce importance of group chat messages This helps if you are in more noisy public channels than small private group chats. The short term plan is to give users the ability to set MUC JIDs as either high or low priority and use that. Long term it would be great to be able to automatically classify MUCs as public channels vs private group chats.
author Kim Alvefur <zash@zash.se>
date Mon, 01 Apr 2019 00:15:13 +0200
parents 98a186874806
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1622
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local statsmanager = require "core.statsmanager";
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local udp = require "socket".udp();
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local server = module:get_option_string("statsd_server_ip", "127.0.0.1");
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local server_port = module:get_option_number("statsd_server_port", 8124);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local max_datagram_size = module:get_option_number("statds_packet_size", 512);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 function push_stats(stats, meta)
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local metric_strings, remaining_bytes = {}, max_datagram_size;
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 for name, value in pairs(stats) do
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local value_meta = meta[name];
1656
98a186874806 mod_statistics_statsd: Use module:log()
Kim Alvefur <zash@zash.se>
parents: 1622
diff changeset
12 module:log("warn", "%s %s", name, tostring(value_meta));
1622
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 --if not value_meta then
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 -- Simple value (gauge)
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local metric_string = ("%s|%d|g"):format(name, value);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 if #metric_string > remaining_bytes then
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 udp:sendto(table.concat(metric_strings, "\n"), server, server_port);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 metric_strings, remaining_bytes = {}, max_datagram_size;
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 end
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 table.insert(metric_strings, metric_string);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 remaining_bytes = remaining_bytes - (#metric_string + 1); -- +1 for newline
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 --end
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 end
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 if #metric_strings > 0 then
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 udp:sendto(table.concat(metric_strings, "\n"), server, server_port);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 end
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 module:hook_global("stats-updated", function (event)
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 push_stats(event.changed_stats, event.stats_extra);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 end);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 function module.load()
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 local all, changed, extra = statsmanager.get_stats();
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 push_stats(all, extra);
b59812aaabad mod_statistics_statsd: Module for pushing from util.statistics (0.10) to statsd
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 end