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_job_in_redis(e) ⇒ Object
- .log_request_in_redis(e) ⇒ Object
- .log_trace_in_redis(request_id, value) ⇒ Object
- .median(array) ⇒ Object
- .save_to_redis(key, value, expire = RP.duration.to_i) ⇒ 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
42 43 44 |
# File 'lib/rails_performance/utils.rb', line 42 def Utils.days (RP.duration % 24.days).parts[:days] + 1 end |
.fetch_from_redis(query) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/rails_performance/utils.rb', line 32 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_job_in_redis(e) ⇒ Object
15 16 17 18 19 |
# File 'lib/rails_performance/utils.rb', line 15 def Utils.log_job_in_redis(e) key = "jobs|queue|#{e[:queue]}|worker|#{e[:worker]}|jid|#{e[:jid]}|datetime|#{e[:datetime]}|created_ati|#{e[:created_ati]}|enqueued_ati|#{e[:enqueued_ati]}|start_timei|#{e[:start_timei]}|status|#{e[:status]}|END" value = { message: e[:message], duration: e[:duration] } Utils.save_to_redis(key, value) end |
.log_request_in_redis(e) ⇒ Object
21 22 23 24 25 |
# File 'lib/rails_performance/utils.rb', line 21 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" Utils.save_to_redis(key, value) end |
.log_trace_in_redis(request_id, value) ⇒ Object
27 28 29 30 |
# File 'lib/rails_performance/utils.rb', line 27 def Utils.log_trace_in_redis(request_id, value) key = "trace|#{request_id}" Utils.save_to_redis(key, value, RailsPerformance::Reports::RecentRequestsReport::TIME_WINDOW.to_i) end |
.median(array) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/rails_performance/utils.rb', line 46 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 |
.save_to_redis(key, value, expire = RP.duration.to_i) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/rails_performance/utils.rb', line 60 def Utils.save_to_redis(key, value, expire = RP.duration.to_i) # puts " [SAVE] key ---> #{key}\n" # puts " value ---> #{value.to_json}\n\n" RP.redis.set(key, value.to_json) RP.redis.expire(key, expire.to_i) end |