Software /
code /
prosody
Comparison
core/statsmanager.lua @ 6555:7b2d16c14659
statsmanager, util.statistics: API changes, remove debugging
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 21 Jan 2015 01:26:06 +0000 |
parent | 6554:6c22bec3e8d0 |
child | 6577:1e749832ed3b |
comparison
equal
deleted
inserted
replaced
6554:6c22bec3e8d0 | 6555:7b2d16c14659 |
---|---|
21 function measure(type, name) | 21 function measure(type, name) |
22 local f = assert(stats[type], "unknown stat type: "..type); | 22 local f = assert(stats[type], "unknown stat type: "..type); |
23 return f(name); | 23 return f(name); |
24 end | 24 end |
25 | 25 |
26 local mark_collection_start = measure("duration", "stats.collection_time"); | 26 local mark_collection_start = measure("times", "stats.collection"); |
27 local mark_processing_start = measure("duration", "stats.processing_time"); | 27 local mark_processing_start = measure("times", "stats.processing"); |
28 | 28 |
29 function collect() | 29 function collect() |
30 local mark_collection_done = mark_collection_start(); | 30 local mark_collection_done = mark_collection_start(); |
31 changed_stats, stats_extra = {}, {}; | 31 changed_stats, stats_extra = {}, {}; |
32 for name, getter in pairs(stats.get_stats()) do | 32 for stat_name, getter in pairs(stats.get_stats()) do |
33 local type, value, extra = getter(); | 33 local type, value, extra = getter(); |
34 local stat_name = name..":"..type; | |
35 local old_value = latest_stats[stat_name]; | 34 local old_value = latest_stats[stat_name]; |
36 latest_stats[stat_name] = value; | 35 latest_stats[stat_name] = value; |
37 if value ~= old_value then | 36 if value ~= old_value then |
38 changed_stats[stat_name] = value; | 37 changed_stats[stat_name] = value; |
39 end | 38 end |
40 if extra then | 39 if extra then |
41 print(stat_name, extra) | |
42 stats_extra[stat_name] = extra; | 40 stats_extra[stat_name] = extra; |
43 if type == "duration" then | |
44 local rate = extra.rate; | |
45 local rate_name = name..":rate"; | |
46 latest_stats[rate_name] = rate; | |
47 changed_stats[rate_name] = rate; | |
48 end | |
49 end | 41 end |
50 end | 42 end |
51 mark_collection_done(); | 43 mark_collection_done(); |
52 local mark_processing_done = mark_processing_start(); | 44 local mark_processing_done = mark_processing_start(); |
53 fire_event("stats-updated", { stats = latest_stats, changed_stats = changed_stats, stats_extra = stats_extra }); | 45 fire_event("stats-updated", { stats = latest_stats, changed_stats = changed_stats, stats_extra = stats_extra }); |