Class: Protobuf::Rpc::Stat
- Inherits:
-
Object
- Object
- Protobuf::Rpc::Stat
- Defined in:
- lib/protobuf/rpc/stat.rb
Constant Summary collapse
- MODES =
[:SERVER, :CLIENT].freeze
Instance Attribute Summary collapse
-
#client ⇒ Object
Returns the value of attribute client.
-
#dispatcher ⇒ Object
Returns the value of attribute dispatcher.
-
#end_time ⇒ Object
Returns the value of attribute end_time.
-
#method_name ⇒ Object
Returns the value of attribute method_name.
-
#mode ⇒ Object
Returns the value of attribute mode.
-
#request_size ⇒ Object
Returns the value of attribute request_size.
-
#response_size ⇒ Object
Returns the value of attribute response_size.
-
#server ⇒ Object
Returns the value of attribute server.
-
#service ⇒ Object
Returns the value of attribute service.
-
#start_time ⇒ Object
Returns the value of attribute start_time.
Instance Method Summary collapse
- #client? ⇒ Boolean
- #elapsed_time ⇒ Object
-
#initialize(mode = :SERVER) ⇒ Stat
constructor
A new instance of Stat.
- #rpc ⇒ Object
- #server? ⇒ Boolean
- #sizes ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #stopped? ⇒ Boolean
- #to_s ⇒ Object
- #trace_id ⇒ Object
Constructor Details
#initialize(mode = :SERVER) ⇒ Stat
Returns a new instance of Stat.
13 14 15 16 17 18 |
# File 'lib/protobuf/rpc/stat.rb', line 13 def initialize(mode = :SERVER) @mode = mode @request_size = 0 @response_size = 0 start end |
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
9 10 11 |
# File 'lib/protobuf/rpc/stat.rb', line 9 def client @client end |
#dispatcher ⇒ Object
Returns the value of attribute dispatcher.
8 9 10 |
# File 'lib/protobuf/rpc/stat.rb', line 8 def dispatcher @dispatcher end |
#end_time ⇒ Object
Returns the value of attribute end_time.
8 9 10 |
# File 'lib/protobuf/rpc/stat.rb', line 8 def end_time @end_time end |
#method_name ⇒ Object
Returns the value of attribute method_name.
9 10 11 |
# File 'lib/protobuf/rpc/stat.rb', line 9 def method_name @method_name end |
#mode ⇒ Object
Returns the value of attribute mode.
8 9 10 |
# File 'lib/protobuf/rpc/stat.rb', line 8 def mode @mode end |
#request_size ⇒ Object
Returns the value of attribute request_size.
8 9 10 |
# File 'lib/protobuf/rpc/stat.rb', line 8 def request_size @request_size end |
#response_size ⇒ Object
Returns the value of attribute response_size.
9 10 11 |
# File 'lib/protobuf/rpc/stat.rb', line 9 def response_size @response_size end |
#server ⇒ Object
Returns the value of attribute server.
9 10 11 |
# File 'lib/protobuf/rpc/stat.rb', line 9 def server @server end |
#service ⇒ Object
Returns the value of attribute service.
9 10 11 |
# File 'lib/protobuf/rpc/stat.rb', line 9 def service @service end |
#start_time ⇒ Object
Returns the value of attribute start_time.
8 9 10 |
# File 'lib/protobuf/rpc/stat.rb', line 8 def start_time @start_time end |
Instance Method Details
#client? ⇒ Boolean
75 76 77 |
# File 'lib/protobuf/rpc/stat.rb', line 75 def client? @mode == :CLIENT end |
#elapsed_time ⇒ Object
26 27 28 |
# File 'lib/protobuf/rpc/stat.rb', line 26 def elapsed_time (start_time && end_time ? "#{(end_time - start_time).round(4)}s" : nil) end |
#rpc ⇒ Object
67 68 69 |
# File 'lib/protobuf/rpc/stat.rb', line 67 def rpc service && method_name ? "#{service}##{method_name}" : nil end |
#server? ⇒ Boolean
71 72 73 |
# File 'lib/protobuf/rpc/stat.rb', line 71 def server? @mode == :SERVER end |
#sizes ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/protobuf/rpc/stat.rb', line 46 def sizes if stopped? "#{@request_size}B/#{@response_size}B" else "#{@request_size}B/-" end end |
#start ⇒ Object
54 55 56 |
# File 'lib/protobuf/rpc/stat.rb', line 54 def start @start_time ||= ::Time.now end |
#stop ⇒ Object
58 59 60 61 |
# File 'lib/protobuf/rpc/stat.rb', line 58 def stop start unless @start_time @end_time ||= ::Time.now end |
#stopped? ⇒ Boolean
63 64 65 |
# File 'lib/protobuf/rpc/stat.rb', line 63 def stopped? !end_time.nil? end |
#to_s ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/protobuf/rpc/stat.rb', line 79 def to_s [ server? ? "[SRV]" : "[CLT]", server? ? client : server, trace_id, rpc, sizes, elapsed_time, @end_time.try(:iso8601), ].compact.join(' - ') end |
#trace_id ⇒ Object
91 92 93 |
# File 'lib/protobuf/rpc/stat.rb', line 91 def trace_id ::Thread.current.object_id.to_s(16) end |