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
77 78 79 |
# File 'lib/protobuf/rpc/stat.rb', line 77 def client? @mode == :CLIENT end |
#elapsed_time ⇒ Object
28 29 30 |
# File 'lib/protobuf/rpc/stat.rb', line 28 def elapsed_time (start_time && end_time ? "#{(end_time - start_time).round(4)}s" : nil) end |
#rpc ⇒ Object
69 70 71 |
# File 'lib/protobuf/rpc/stat.rb', line 69 def rpc service && method_name ? "#{service}##{method_name}" : nil end |
#server? ⇒ Boolean
73 74 75 |
# File 'lib/protobuf/rpc/stat.rb', line 73 def server? @mode == :SERVER end |
#sizes ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/protobuf/rpc/stat.rb', line 48 def sizes if stopped? "#{@request_size}B/#{@response_size}B" else "#{@request_size}B/-" end end |
#start ⇒ Object
56 57 58 |
# File 'lib/protobuf/rpc/stat.rb', line 56 def start @start_time ||= ::Time.now end |
#stop ⇒ Object
60 61 62 63 |
# File 'lib/protobuf/rpc/stat.rb', line 60 def stop start unless @start_time @end_time ||= ::Time.now end |
#stopped? ⇒ Boolean
65 66 67 |
# File 'lib/protobuf/rpc/stat.rb', line 65 def stopped? ! end_time.nil? end |
#to_s ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/protobuf/rpc/stat.rb', line 81 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
93 94 95 |
# File 'lib/protobuf/rpc/stat.rb', line 93 def trace_id ::Thread.current.object_id.to_s(16) end |