Class: RailsRequestStats::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_request_stats/report.rb

Constant Summary collapse

FORMAT_FLAG =
'%g'.freeze

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_stats) ⇒ Report

Returns a new instance of Report.



12
13
14
# File 'lib/rails_request_stats/report.rb', line 12

def initialize(request_stats)
  @request_stats = request_stats
end

Class Attribute Details

Returns the value of attribute print_memory_stats.



6
7
8
# File 'lib/rails_request_stats/report.rb', line 6

def print_memory_stats
  @print_memory_stats
end

Instance Attribute Details

#request_statsObject (readonly)

Returns the value of attribute request_stats.



10
11
12
# File 'lib/rails_request_stats/report.rb', line 10

def request_stats
  @request_stats
end

Instance Method Details

#avg(collection) ⇒ Object



45
46
47
# File 'lib/rails_request_stats/report.rb', line 45

def avg(collection)
  total(collection).to_f / collection.size
end

#exit_report_textObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rails_request_stats/report.rb', line 29

def exit_report_text
  controller_information = "[RailsRequestStats] #{@request_stats.action.upcase}:#{@request_stats.format} \"#{@request_stats.path}\""
  avg_view_runtime = "AVG view_runtime: #{format_number(avg(runtime_stats.view_runtime_collection))}ms"
  avg_db_runtime = "AVG db_runtime: #{format_number(avg(runtime_stats.db_runtime_collection))}ms"
  avg_generated_object_count = "AVG generated_object_count: #{format_number(avg(object_space_stats.generated_object_count_collection))}"
  min_query_count = "MIN query_count: #{format_number(database_query_stats.query_count_collection.min)}"
  max_query_count = "MAX query_count: #{format_number(database_query_stats.query_count_collection.max)}"
  request_count = "from #{format_number(runtime_stats.view_runtime_collection.size)} requests"

  "#{controller_information} (#{[avg_view_runtime, avg_db_runtime, avg_generated_object_count, min_query_count, max_query_count].join(' | ')}) #{request_count}"
end

#report_textObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rails_request_stats/report.rb', line 16

def report_text
  avg_view_runtime = "AVG view_runtime: #{format_number(avg(runtime_stats.view_runtime_collection))}ms"
  avg_db_runtime = "AVG db_runtime: #{format_number(avg(runtime_stats.db_runtime_collection))}ms"
  avg_generated_object_count = "AVG generated_object_count: #{format_number(avg(object_space_stats.generated_object_count_collection))}"
  query_count = "query_count: #{format_number(database_query_stats.query_count_collection.last)}"
  cached_query_count = "cached_query_count: #{format_number(database_query_stats.cached_query_count_collection.last)}"
  cache_read_count = "cache_read_count: #{format_number(cache_stats.cache_read_count_collection.last)}"
  cache_hit_count = "cache_hit_count: #{format_number(cache_stats.cache_hit_count_collection.last)}"
  generated_objects = self.class.print_memory_stats ? "generated_objects: #{object_space_stats.last_stats_generated_objects}" : nil

  "[RailsRequestStats] (#{[avg_view_runtime, avg_db_runtime, avg_generated_object_count, query_count, cached_query_count, cache_read_count, cache_hit_count, generated_objects].compact.join(' | ')})"
end

#total(collection) ⇒ Object



41
42
43
# File 'lib/rails_request_stats/report.rb', line 41

def total(collection)
  collection.reduce(:+)
end