Mercurial > prosody-modules
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 |
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 |