Class: RailsPerformance::Utils
- Inherits:
-
Object
- Object
- RailsPerformance::Utils
- Defined in:
- lib/rails_performance/utils.rb
Class Method Summary collapse
-
.cache_key(now = Date.today) ⇒ Object
date key in redis store.
- .days ⇒ Object
- .fetch_from_redis(query) ⇒ Object
-
.field_key(now = Time.now) ⇒ Object
write to current slot time - date -minute.
- .log_request_in_redis(e) ⇒ Object
- .log_trace_in_redis(request_id, value) ⇒ Object
- .median(array) ⇒ Object
Class Method Details
.cache_key(now = Date.today) ⇒ Object
date key in redis store
5 6 7 |
# File 'lib/rails_performance/utils.rb', line 5 def Utils.cache_key(now = Date.today) "date-#{now}" end |
.days ⇒ Object
49 50 51 |
# File 'lib/rails_performance/utils.rb', line 49 def Utils.days (RP.duration % 24.days).parts[:days] + 1 end |
.fetch_from_redis(query) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/rails_performance/utils.rb', line 39 def Utils.fetch_from_redis(query) #puts "\n\n [REDIS QUERY] --> #{query}\n\n" keys = RP.redis.keys(query) return [] if keys.blank? values = RP.redis.mget(keys) [keys, values] end |
.field_key(now = Time.now) ⇒ Object
write to current slot time - date -minute
11 12 13 |
# File 'lib/rails_performance/utils.rb', line 11 def Utils.field_key(now = Time.now) now.strftime("%H:%M") end |
.log_request_in_redis(e) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rails_performance/utils.rb', line 15 def Utils.log_request_in_redis(e) value = e.slice(:view_runtime, :db_runtime, :duration, :HTTP_REFERER) key = "performance|controller|#{e[:controller]}|action|#{e[:action]}|format|#{e[:format]}|status|#{e[:status]}|datetime|#{e[:datetime]}|datetimei|#{e[:datetimei]}|method|#{e[:method]}|path|#{e[:path]}|request_id|#{e[:request_id]}|END" # puts " [SAVE] key ---> #{key}\n" # puts " value ---> #{value.to_json}\n\n" RP.redis.set(key, value.to_json) RP.redis.expire(key, RP.duration.to_i) true end |
.log_trace_in_redis(request_id, value) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rails_performance/utils.rb', line 28 def Utils.log_trace_in_redis(request_id, value) key = "trace|#{request_id}" # puts " [SAVE] key ---> #{key}\n" # puts " value ---> #{value.to_json}\n\n" # pp value RP.redis.set(key, value.to_json) RP.redis.expire(key, RailsPerformance::Reports::RecentRequestsReport::TIME_WINDOW.to_i) end |
.median(array) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/rails_performance/utils.rb', line 53 def Utils.median(array) sorted = array.sort size = sorted.size center = size / 2 if size == 0 nil elsif size.even? (sorted[center - 1] + sorted[center]) / 2.0 else sorted[center] end end |