if not minetest.global_exists("prometheus") then return end local kill_counter = 0 ctf.register_on_killedplayer(function(victim, killer, type) kill_counter = kill_counter + 1 end) local function step() prometheus.post("minetest_kills", kill_counter) kill_counter = 0 local sum = 0 local avg = 0 local bins = { r050=0, r200=0, r5000=0, rest=0 } if #minetest.get_connected_players() > 0 then for _, player in pairs(minetest.get_connected_players()) do local total, _ = ctf_stats.player(player:get_player_name()) sum = sum + total.score if total.score > 174000 then bins.r050 = bins.r050 + 1 elseif total.score > 10000 then bins.r200 = bins.r200 + 1 elseif total.score > 1000 then bins.r5000 = bins.r5000 + 1 else bins.rest = bins.rest + 1 end end avg = sum / #minetest.get_connected_players() end for key, value in pairs(bins) do prometheus.post("minetest_ctf_score_bins{rank=\"" .. key .. "\"}", value) end prometheus.post("minetest_ctf_score_total", sum) prometheus.post("minetest_ctf_score_avg", avg) minetest.after(15, step) end minetest.after(15, step)