class Protobuf::Rpc::Stat
def client
def client @client || nil end
def client=(client_host)
def client=(client_host) @client = client_host end
def client?
def client? @mode == :CLIENT end
def elapsed_time
def elapsed_time (start_time && end_time ? "#{(end_time - start_time).round(4)}s" : nil) end
def initialize(mode = :SERVER)
def initialize(mode = :SERVER) @mode = mode @request_size = 0 @response_size = 0 start end
def method_name
def method_name @method_name ||= @dispatcher.try(:service).try(:method_name) end
def rpc
def rpc service && method_name ? "#{service}##{method_name}" : nil end
def server
def server @server ? "#{@server[:ip]}:#{@server[:port]}" : nil end
def server=(peer)
def server=(peer) @server = {:port => peer[0], :ip => peer[1]} end
def server?
def server? @mode == :SERVER end
def service
def service @service ||= @dispatcher.try(:service).class.name end
def sizes
def sizes if stopped? "#{@request_size}B/#{@response_size}B" else "#{@request_size}B/-" end end
def start
def start @start_time ||= ::Time.now end
def stop
def stop start unless @start_time @end_time ||= ::Time.now end
def stopped?
def stopped? ! end_time.nil? end
def to_s
def to_s [ server? ? "[SRV]" : "[CLT]", server? ? client : server, trace_id, rpc, sizes, elapsed_time, @end_time.try(:iso8601) ].compact.join(' - ') end
def trace_id
def trace_id ::Thread.current.object_id.to_s(16) end