rails_performance 1.0.0.beta1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d488f59068653fd127b680b6d2c067fbc23f85c84526d1259b2fb47dd3e25367
4
- data.tar.gz: 6efcf5fb469225f298bf21b2812792acf771aebf27b623d747d4c46e29313dc3
3
+ metadata.gz: 5da13053dd45132a995aa83cd0a1514bf44bd0ca9acdac19898f2d23674171c8
4
+ data.tar.gz: de1e1dee044deed998dcaf3cc863301f7c3f4c732adb06efa98427f6797a79db
5
5
  SHA512:
6
- metadata.gz: 2513587de28e920769405e717488fe64725e780aa3f33f012e78078c7ece12afe873347c14ec450568066fbe7f2d031a3b04e164836dc3759725416ff5a95406
7
- data.tar.gz: 87f823f42bbaf9c1491e49bbd194d8312ea395cb32372eac58fa97660b9a999c1de5106c5ab13d8ed28d63baebe6d2b8d8d05b933aece8ffaf4d5af338058417
6
+ metadata.gz: 4ed1e54a27941fba93ec958dce9eee09c926350e2906be2e91ff1458f751ed6bd37b29732f8ca0629137bd189796c3dc5e9f0eddab332e06512f76db1b6235a6
7
+ data.tar.gz: 49e036a7f777488c4c8cd90e0927b3969d2d5dd0d057ebdb8aa2b9e759a233ba0cd4652a2bcc0374517d101fa2f0ccbf12d6d856546b09f7ebfe9db51404a6f2
data/README.md CHANGED
@@ -188,6 +188,8 @@ The idea of this gem grew from curriosity how many RPM my app receiving per day.
188
188
 
189
189
  You are welcome to contribute. I've a big list of TODO.
190
190
 
191
+ If "schema" how records are stored i Redis is changed, and this is a breacking change, update: `RailsPerformance::SCHEMA` to a newer value.
192
+
191
193
  ## Big thanks to contributors
192
194
 
193
195
  - https://github.com/synth
@@ -6,20 +6,20 @@ module RailsPerformance
6
6
 
7
7
  if RailsPerformance.enabled
8
8
  def index
9
- @datasource = RP::DataSource.new(**prepare_query, type: :requests)
9
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :requests)
10
10
  db = @datasource.db
11
11
 
12
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
13
- @response_time_report_data = RP::Reports::ResponseTimeReport.new(db).data
12
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
13
+ @response_time_report_data = RailsPerformance::Reports::ResponseTimeReport.new(db).data
14
14
  end
15
15
 
16
16
  def summary
17
- @datasource = RP::DataSource.new(**prepare_query, type: :requests)
17
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :requests)
18
18
  db = @datasource.db
19
19
 
20
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
21
- @response_time_report_data = RP::Reports::ResponseTimeReport.new(db).data
22
- @data = RP::Reports::BreakdownReport.new(db, title: "Requests").data
20
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
21
+ @response_time_report_data = RailsPerformance::Reports::ResponseTimeReport.new(db).data
22
+ @data = RailsPerformance::Reports::BreakdownReport.new(db, title: "Requests").data
23
23
 
24
24
  respond_to do |format|
25
25
  format.js {}
@@ -28,8 +28,8 @@ module RailsPerformance
28
28
  end
29
29
 
30
30
  def trace
31
- @record = RP::Models::RequestRecord.find_by(request_id: params[:id])
32
- @data = RP::Reports::TraceReport.new(request_id: params[:id]).data
31
+ @record = RailsPerformance::Models::RequestRecord.find_by(request_id: params[:id])
32
+ @data = RailsPerformance::Reports::TraceReport.new(request_id: params[:id]).data
33
33
  respond_to do |format|
34
34
  format.js {}
35
35
  format.any { render plain: "Doesn't open in new window. Wait until full page load." }
@@ -37,65 +37,65 @@ module RailsPerformance
37
37
  end
38
38
 
39
39
  def crashes
40
- @datasource = RP::DataSource.new(**prepare_query({status_eq: 500}), type: :requests)
40
+ @datasource = RailsPerformance::DataSource.new(**prepare_query({status_eq: 500}), type: :requests)
41
41
  db = @datasource.db
42
- @data = RP::Reports::CrashReport.new(db).data
42
+ @data = RailsPerformance::Reports::CrashReport.new(db).data
43
43
  end
44
44
 
45
45
  def requests
46
- @datasource = RP::DataSource.new(**prepare_query, type: :requests)
46
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :requests)
47
47
  db = @datasource.db
48
- @data = RP::Reports::RequestsReport.new(db, group: :controller_action_format, sort: :count).data
48
+ @data = RailsPerformance::Reports::RequestsReport.new(db, group: :controller_action_format, sort: :count).data
49
49
  end
50
50
 
51
51
  def recent
52
- @datasource = RP::DataSource.new(**prepare_query, type: :requests)
52
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :requests)
53
53
  db = @datasource.db
54
- @data = RP::Reports::RecentRequestsReport.new(db).data
54
+ @data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
55
55
  end
56
56
 
57
57
  def sidekiq
58
- @datasource = RP::DataSource.new(**prepare_query, type: :sidekiq)
58
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :sidekiq)
59
59
  db = @datasource.db
60
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
61
- @response_time_report_data = RP::Reports::ResponseTimeReport.new(db).data
62
- @recent_report_data = RP::Reports::RecentRequestsReport.new(db).data
60
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
61
+ @response_time_report_data = RailsPerformance::Reports::ResponseTimeReport.new(db).data
62
+ @recent_report_data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
63
63
  end
64
64
 
65
65
  def delayed_job
66
- @datasource = RP::DataSource.new(**prepare_query, type: :delayed_job)
66
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :delayed_job)
67
67
  db = @datasource.db
68
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
69
- @response_time_report_data = RP::Reports::ResponseTimeReport.new(db).data
70
- @recent_report_data = RP::Reports::RecentRequestsReport.new(db).data
68
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
69
+ @response_time_report_data = RailsPerformance::Reports::ResponseTimeReport.new(db).data
70
+ @recent_report_data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
71
71
  end
72
72
 
73
73
  def custom
74
- @datasource = RP::DataSource.new(**prepare_query, type: :custom)
74
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :custom)
75
75
  db = @datasource.db
76
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
77
- @response_time_report_data = RP::Reports::ResponseTimeReport.new(db).data
78
- @recent_report_data = RP::Reports::RecentRequestsReport.new(db).data
76
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
77
+ @response_time_report_data = RailsPerformance::Reports::ResponseTimeReport.new(db).data
78
+ @recent_report_data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
79
79
  end
80
80
 
81
81
  def grape
82
- @datasource = RP::DataSource.new(**prepare_query, type: :grape)
82
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :grape)
83
83
  db = @datasource.db
84
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
85
- @recent_report_data = RP::Reports::RecentRequestsReport.new(db).data
84
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
85
+ @recent_report_data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
86
86
  end
87
87
 
88
88
  def rake
89
- @datasource = RP::DataSource.new(**prepare_query, type: :rake)
89
+ @datasource = RailsPerformance::DataSource.new(**prepare_query, type: :rake)
90
90
  db = @datasource.db
91
- @throughput_report_data = RP::Reports::ThroughputReport.new(db).data
92
- @recent_report_data = RP::Reports::RecentRequestsReport.new(db).data
91
+ @throughput_report_data = RailsPerformance::Reports::ThroughputReport.new(db).data
92
+ @recent_report_data = RailsPerformance::Reports::RecentRequestsReport.new(db).data
93
93
  end
94
94
 
95
95
  private
96
96
 
97
97
  def prepare_query(query = params)
98
- RP::Rails::QueryBuilder.compose_from(query)
98
+ RailsPerformance::Rails::QueryBuilder.compose_from(query)
99
99
  end
100
100
  end
101
101
 
@@ -19,7 +19,7 @@
19
19
  <%= yield %>
20
20
  <div class="footer-box">
21
21
  © Rails Performance <span class='red'><i class="fas fa-heart"></i></span> <%= link_to 'https://github.com/igorkasyanchuk/rails_performance', 'https://github.com/igorkasyanchuk/rails_performance', target: '_blank' %>
22
- <div class="is-pulled-right">v.<%= RP::VERSION %></div>
22
+ <div class="is-pulled-right">v.<%= RailsPerformance::VERSION %></div>
23
23
  </div>
24
24
  </div>
25
25
  </section>
@@ -9,6 +9,8 @@
9
9
  <th data-sort="string">Method</th>
10
10
  <th data-sort="string">Format</th>
11
11
  <th data-sort="string">Path</th>
12
+ <th data-sort="string">Exception</th>
13
+ <th data-sort="string">Backtrace</th>
12
14
  <th data-sort="string">Status</th>
13
15
  <th data-sort="float">Duration</th>
14
16
  <th data-sort="float">Views</th>
@@ -29,6 +31,10 @@
29
31
  <td><%= e[:method] %></td>
30
32
  <td><%= e[:format] %></td>
31
33
  <td><%= link_to_path(e) %></td>
34
+ <td><%= e[:exception] %></td>
35
+ <td class="very-small-text">
36
+ <%= raw e[:backtrace]&.join("<br/>") %>
37
+ </td>
32
38
  <td><%= status_tag e[:status] %></td>
33
39
  <td class="nowrap"><%= ms e[:duration] %></td>
34
40
  <td class="nowrap"><%= ms e[:view_runtime] %></td>
@@ -84,4 +84,8 @@
84
84
 
85
85
  table th[data-sort] {
86
86
  cursor: pointer;
87
+ }
88
+
89
+ .very-small-text {
90
+ font-size: 8px;
87
91
  }
@@ -69,11 +69,11 @@ module RailsPerformance
69
69
  mattr_accessor :skip
70
70
  @@skip = false
71
71
 
72
- def self.setup
72
+ def RailsPerformance.setup
73
73
  yield(self)
74
74
  end
75
75
 
76
- def self.log(message)
76
+ def RailsPerformance.log(message)
77
77
  return
78
78
 
79
79
  if ::Rails.logger
@@ -86,8 +86,6 @@ module RailsPerformance
86
86
 
87
87
  end
88
88
 
89
- RP = RailsPerformance
90
-
91
89
  require "rails_performance/engine"
92
90
 
93
91
  require_relative './rails_performance/gems/custom_ext.rb'
@@ -19,9 +19,9 @@ module RailsPerformance
19
19
  end
20
20
 
21
21
  def db
22
- result = RP::Models::Collection.new
23
- (RP::Utils.days + 1).times do |e|
24
- RP::DataSource.new(q: self.q.merge({ on: e.days.ago.to_date }), type: type).add_to(result)
22
+ result = RailsPerformance::Models::Collection.new
23
+ (RailsPerformance::Utils.days + 1).times do |e|
24
+ RailsPerformance::DataSource.new(q: self.q.merge({ on: e.days.ago.to_date }), type: type).add_to(result)
25
25
  end
26
26
  result
27
27
  end
@@ -30,7 +30,7 @@ module RailsPerformance
30
30
  @q.keys == [:on]
31
31
  end
32
32
 
33
- def add_to(storage = RP::Models::Collection.new)
33
+ def add_to(storage = RailsPerformance::Models::Collection.new)
34
34
  store do |record|
35
35
  storage.add(record)
36
36
  end
@@ -52,17 +52,17 @@ module RailsPerformance
52
52
  def query
53
53
  case type
54
54
  when :requests
55
- "performance|*#{compile_requests_query}*|END|#{RailsPerformance::VERSION}"
55
+ "performance|*#{compile_requests_query}*|END|#{RailsPerformance::SCHEMA}"
56
56
  when :sidekiq
57
- "sidekiq|*#{compile_sidekiq_query}*|END|#{RailsPerformance::VERSION}"
57
+ "sidekiq|*#{compile_sidekiq_query}*|END|#{RailsPerformance::SCHEMA}"
58
58
  when :delayed_job
59
- "delayed_job|*#{compile_delayed_job_query}*|END|#{RailsPerformance::VERSION}"
59
+ "delayed_job|*#{compile_delayed_job_query}*|END|#{RailsPerformance::SCHEMA}"
60
60
  when :grape
61
- "grape|*#{compile_grape_query}*|END|#{RailsPerformance::VERSION}"
61
+ "grape|*#{compile_grape_query}*|END|#{RailsPerformance::SCHEMA}"
62
62
  when :rake
63
- "rake|*#{compile_rake_query}*|END|#{RailsPerformance::VERSION}"
63
+ "rake|*#{compile_rake_query}*|END|#{RailsPerformance::SCHEMA}"
64
64
  when :custom
65
- "custom|*#{compile_custom_query}*|END|#{RailsPerformance::VERSION}"
65
+ "custom|*#{compile_custom_query}*|END|#{RailsPerformance::SCHEMA}"
66
66
  else
67
67
  raise "wrong type for datasource query builder"
68
68
  end
@@ -13,7 +13,11 @@ module RailsPerformance
13
13
  if ::Rails::VERSION::MAJOR.to_i >= 5
14
14
  app.middleware.insert_after ActionDispatch::Executor, RailsPerformance::Rails::Middleware
15
15
  else
16
- app.middleware.insert_after ActionDispatch::Static, RailsPerformance::Rails::Middleware
16
+ begin
17
+ app.middleware.insert_after ActionDispatch::Static, RailsPerformance::Rails::Middleware
18
+ rescue
19
+ app.middleware.insert_after Rack::SendFile, RailsPerformance::Rails::Middleware
20
+ end
17
21
  end
18
22
  # look like it works in reverse order?
19
23
  app.middleware.insert_before RailsPerformance::Rails::Middleware, RailsPerformance::Rails::MiddlewareTraceStorerAndCleanup
@@ -7,7 +7,7 @@ module RailsPerformance
7
7
  # TODO change to set
8
8
  CurrentRequest.current.ignore.add(:performance)
9
9
 
10
- now = Time.now
10
+ now = Time.now
11
11
  CurrentRequest.current.data ||= {}
12
12
  CurrentRequest.current.record ||= RailsPerformance::Models::GrapeRecord.new(request_id: CurrentRequest.current.request_id)
13
13
  CurrentRequest.current.record.datetimei ||= now.to_i
@@ -7,7 +7,7 @@ module RailsPerformance
7
7
 
8
8
  def call(worker, msg, queue)
9
9
  now = Time.now
10
- record = RP::Models::SidekiqRecord.new(
10
+ record = RailsPerformance::Models::SidekiqRecord.new(
11
11
  enqueued_ati: msg['enqueued_at'].to_i,
12
12
  datetimei: msg['created_at'].to_i,
13
13
  jid: msg['jid'],
@@ -17,6 +17,8 @@ module RailsPerformance
17
17
 
18
18
  def call(event_name, started, finished, event_id, payload)
19
19
  return if RailsPerformance.skip
20
+ return if CurrentRequest.current.data
21
+
20
22
  # TODO do we need this new?
21
23
  event = ActiveSupport::Notifications::Event.new(event_name, started, finished, event_id, payload)
22
24
 
@@ -33,9 +35,13 @@ module RailsPerformance
33
35
  path: event.payload[:path],
34
36
  view_runtime: event.payload[:view_runtime],
35
37
  db_runtime: event.payload[:db_runtime],
36
- duration: event.duration
38
+ duration: event.duration,
39
+ exception: event.payload[:exception],
40
+ exception_object: event.payload[:exception_object]
37
41
  }
38
42
 
43
+ # pass the record to Thread.current
44
+ # and saves later in middleware
39
45
  CurrentRequest.current.data = record
40
46
  end
41
47
  end
@@ -38,7 +38,7 @@ module RailsPerformance
38
38
  end
39
39
 
40
40
  def save
41
- key = "custom|tag_name|#{tag_name}|namespace_name|#{namespace_name}|datetime|#{datetime}|datetimei|#{datetimei}|status|#{status}|END|#{RailsPerformance::VERSION}"
41
+ key = "custom|tag_name|#{tag_name}|namespace_name|#{namespace_name}|datetime|#{datetime}|datetimei|#{datetimei}|status|#{status}|END|#{RailsPerformance::SCHEMA}"
42
42
  value = { duration: duration }
43
43
  Utils.save_to_redis(key, value)
44
44
  end
@@ -52,7 +52,7 @@ module RailsPerformance
52
52
  end
53
53
 
54
54
  def save
55
- key = "delayed_job|jid|#{jid}|datetime|#{datetime}|datetimei|#{datetimei}|source_type|#{source_type}|class_name|#{class_name}|method_name|#{method_name}|status|#{status}|END|#{RailsPerformance::VERSION}"
55
+ key = "delayed_job|jid|#{jid}|datetime|#{datetime}|datetimei|#{datetimei}|source_type|#{source_type}|class_name|#{class_name}|method_name|#{method_name}|status|#{status}|END|#{RailsPerformance::SCHEMA}"
56
56
  value = { duration: duration }
57
57
  Utils.save_to_redis(key, value)
58
58
  end
@@ -50,7 +50,7 @@ module RailsPerformance
50
50
  end
51
51
 
52
52
  def save
53
- key = "grape|datetime|#{datetime}|datetimei|#{datetimei}|format|#{format}|path|#{path}|status|#{status}|method|#{method}|request_id|#{request_id}|END|#{RailsPerformance::VERSION}"
53
+ key = "grape|datetime|#{datetime}|datetimei|#{datetimei}|format|#{format}|path|#{path}|status|#{status}|method|#{method}|request_id|#{request_id}|END|#{RailsPerformance::SCHEMA}"
54
54
  value = { "endpoint_render.grape" => endpoint_render_grape, "endpoint_run.grape" => endpoint_run_grape, "format_response.grape" => format_response_grape }
55
55
 
56
56
  Utils.save_to_redis(key, value)
@@ -39,7 +39,7 @@ module RailsPerformance
39
39
  end
40
40
 
41
41
  def save
42
- key = "rake|task|#{task.to_json}|datetime|#{datetime}|datetimei|#{datetimei}|status|#{status}|END|#{RailsPerformance::VERSION}"
42
+ key = "rake|task|#{task.to_json}|datetime|#{datetime}|datetimei|#{datetimei}|status|#{status}|END|#{RailsPerformance::SCHEMA}"
43
43
  value = { duration: duration }
44
44
  Utils.save_to_redis(key, value)
45
45
  end
@@ -3,14 +3,15 @@ module RailsPerformance
3
3
  class RequestRecord < BaseRecord
4
4
  attr_accessor :controller, :action, :format, :status, :datetime, :datetimei, :method, :path, :request_id, :json
5
5
  attr_accessor :view_runtime, :db_runtime, :duration, :http_referer
6
+ attr_accessor :exception, :exception_object
6
7
 
7
8
  def RequestRecord.find_by(request_id:)
8
- keys, values = RP::Utils.fetch_from_redis("performance|*|request_id|#{request_id}|*")
9
+ keys, values = RailsPerformance::Utils.fetch_from_redis("performance|*|request_id|#{request_id}|*")
9
10
 
10
11
  return nil if keys.blank?
11
12
  return nil if values.blank?
12
13
 
13
- RP::Models::RequestRecord.from_db(keys[0], values[0])
14
+ RailsPerformance::Models::RequestRecord.from_db(keys[0], values[0])
14
15
  end
15
16
 
16
17
  # key = performance|
@@ -24,7 +25,7 @@ module RailsPerformance
24
25
  # path|/|
25
26
  # request_id|454545454545454545|
26
27
  # END|1.0.0
27
- # = {"view_runtime":8.444603008683771,"db_runtime":0,"duration":9.216095000000001}
28
+ # = {"view_runtime":null,"db_runtime":0,"duration":27.329741000000002,"http_referer":null,"exception":"ZeroDivisionError divided by 0","backtrace":["/root/projects/rails_performance/test/dummy/app/controllers/account/site_controller.rb:17:in `/'","/root/projects/rails_performance/test/dummy/app/controllers/account/site_controller.rb:17:in `crash'","/usr/local/rvm/gems/ruby-2.6.3/gems/actionpack-6.1.3.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'"]}
28
29
  # value = JSON
29
30
  def RequestRecord.from_db(key, value)
30
31
  items = key.split("|")
@@ -43,7 +44,7 @@ module RailsPerformance
43
44
  )
44
45
  end
45
46
 
46
- def initialize(controller:, action:, format:, status:, datetime:, datetimei:, method:, path:, request_id:, view_runtime: nil, db_runtime: nil, duration: nil, http_referer: nil, json: '{}')
47
+ def initialize(controller:, action:, format:, status:, datetime:, datetimei:, method:, path:, request_id:, view_runtime: nil, db_runtime: nil, duration: nil, http_referer: nil, exception: nil, exception_object: nil, json: '{}')
47
48
  @controller = controller
48
49
  @action = action
49
50
  @format = format
@@ -59,6 +60,9 @@ module RailsPerformance
59
60
  @duration = duration
60
61
  @http_referer = http_referer
61
62
 
63
+ @exception = Array.wrap(exception).compact.join(" ")
64
+ @exception_object = exception_object
65
+
62
66
  @json = json
63
67
  end
64
68
 
@@ -84,12 +88,21 @@ module RailsPerformance
84
88
  duration: self.value['duration'],
85
89
  db_runtime: self.value['db_runtime'],
86
90
  view_runtime: self.value['view_runtime'],
91
+ exception: self.value['exception'],
92
+ backtrace: self.value['backtrace']
87
93
  }
88
94
  end
89
95
 
90
96
  def save
91
- value = { view_runtime: view_runtime, db_runtime: db_runtime, duration: duration, http_referer: http_referer }
92
- key = "performance|controller|#{controller}|action|#{action}|format|#{format}|status|#{status}|datetime|#{datetime}|datetimei|#{datetimei}|method|#{method}|path|#{path}|request_id|#{request_id}|END|#{RailsPerformance::VERSION}"
97
+ key = "performance|controller|#{controller}|action|#{action}|format|#{format}|status|#{status}|datetime|#{datetime}|datetimei|#{datetimei}|method|#{method}|path|#{path}|request_id|#{request_id}|END|#{RailsPerformance::SCHEMA}"
98
+ value = {
99
+ view_runtime: view_runtime,
100
+ db_runtime: db_runtime,
101
+ duration: duration,
102
+ http_referer: http_referer,
103
+ }
104
+ value[:exception] = exception if exception.present?
105
+ value[:backtrace] = exception_object.backtrace.take(3) if exception_object
93
106
  Utils.save_to_redis(key, value)
94
107
  end
95
108
 
@@ -56,7 +56,7 @@ module RailsPerformance
56
56
  end
57
57
 
58
58
  def save
59
- key = "sidekiq|queue|#{queue}|worker|#{worker}|jid|#{jid}|datetime|#{datetime}|datetimei|#{datetimei}|enqueued_ati|#{enqueued_ati}|start_timei|#{start_timei}|status|#{status}|END|#{RailsPerformance::VERSION}"
59
+ key = "sidekiq|queue|#{queue}|worker|#{worker}|jid|#{jid}|datetime|#{datetime}|datetimei|#{datetimei}|enqueued_ati|#{enqueued_ati}|start_timei|#{start_timei}|status|#{status}|END|#{RailsPerformance::SCHEMA}"
60
60
  value = { message: message, duration: duration }
61
61
  Utils.save_to_redis(key, value)
62
62
  end
@@ -11,7 +11,7 @@ module RailsPerformance
11
11
  def save
12
12
  return if value.empty?
13
13
 
14
- Utils.save_to_redis("trace|#{request_id}|END|#{RailsPerformance::VERSION}", value, RailsPerformance::Reports::RecentRequestsReport::TIME_WINDOW.to_i)
14
+ Utils.save_to_redis("trace|#{request_id}|END|#{RailsPerformance::SCHEMA}", value, RailsPerformance::Reports::RecentRequestsReport::TIME_WINDOW.to_i)
15
15
  end
16
16
 
17
17
  end
@@ -8,8 +8,8 @@ module RailsPerformance
8
8
  end
9
9
 
10
10
  def data
11
- key = "trace|#{request_id}|END|#{RailsPerformance::VERSION}"
12
- JSON.parse(RP.redis.get(key).presence || '[]')
11
+ key = "trace|#{request_id}|END|#{RailsPerformance::SCHEMA}"
12
+ JSON.parse(RailsPerformance.redis.get(key).presence || '[]')
13
13
  end
14
14
  end
15
15
 
@@ -1,3 +1,4 @@
1
1
  module RailsPerformance
2
- VERSION = '1.0.0.beta1'
2
+ VERSION = '1.0.0'
3
+ SCHEMA = '1.0.1'
3
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_performance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Kasyanchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2021-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -266,9 +266,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
266
266
  version: '0'
267
267
  required_rubygems_version: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - ">"
269
+ - - ">="
270
270
  - !ruby/object:Gem::Version
271
- version: 1.3.1
271
+ version: '0'
272
272
  requirements: []
273
273
  rubygems_version: 3.0.3
274
274
  signing_key: