Class: TimedResult

Inherits:
Object
  • Object
show all
Defined in:
lib/http_api_client/timed_result.rb

Class Method Summary collapse

Class Method Details

.as_log_entries(hash) ⇒ Object



24
25
26
27
28
# File 'lib/http_api_client/timed_result.rb', line 24

def self.as_log_entries(hash)
  hash.inject [] do |result, entry|
    result << "#{entry[0]}=#{entry[1]}"
  end
end

.millis_since(start_time) ⇒ Object



20
21
22
# File 'lib/http_api_client/timed_result.rb', line 20

def self.millis_since(start_time)
  (Time.now - start_time) * 1000
end

.time(event, log_data = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/http_api_client/timed_result.rb', line 4

def self.time(event, log_data = {})
  start_time = Time.now
  yield
ensure

  time = millis_since(start_time)

  log_entries = ["event_name=#{event}"]
  log_entries << "request_id=#{Thread.current[:request_id]}" if Thread.current[:request_id]
  log_entries << "timing=#{time}"
  log_entries.concat(as_log_entries(log_data))

  HttpApiClient.logger.info(log_entries.join(", "))

end