discourse/lib/stats_socket.rb

32 lines
560 B
Ruby

require 'socket_server'
class StatsSocket < SocketServer
def initialize(socket_path)
super(socket_path)
end
protected
def get_response(command)
result =
case command
when "gc_stat"
GC.stat.to_json
when "v8_stat"
stats = {}
ObjectSpace.each_object(MiniRacer::Context) do |context|
context.heap_stats.each do |k,v|
stats[k] = (stats[k] || 0) + v
end
end
stats.to_json
else
"[\"UNKNOWN COMMAND\"]"
end
result << "\n"
end
end