rails_performance 0.9.5 → 1.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +59 -9
  3. data/app/controllers/rails_performance/rails_performance_controller.rb +47 -35
  4. data/app/helpers/rails_performance/application_helper.rb +25 -7
  5. data/app/views/rails_performance/javascripts/app.js +2 -2
  6. data/app/views/rails_performance/layouts/rails_performance.html.erb +2 -2
  7. data/app/views/rails_performance/rails_performance/_summary.html.erb +1 -1
  8. data/app/views/rails_performance/rails_performance/custom.html.erb +83 -0
  9. data/app/views/rails_performance/rails_performance/delayed_job.html.erb +74 -0
  10. data/app/views/rails_performance/rails_performance/grape.html.erb +64 -0
  11. data/app/views/rails_performance/rails_performance/rake.html.erb +55 -0
  12. data/app/views/rails_performance/rails_performance/recent.html.erb +3 -1
  13. data/app/views/rails_performance/rails_performance/requests.html.erb +1 -1
  14. data/app/views/rails_performance/rails_performance/{jobs.html.erb → sidekiq.html.erb} +5 -4
  15. data/app/views/rails_performance/rails_performance/summary.js.erb +1 -1
  16. data/app/views/rails_performance/rails_performance/trace.js.erb +1 -1
  17. data/app/views/rails_performance/shared/_header.html.erb +9 -1
  18. data/app/views/rails_performance/stylesheets/style.css +5 -0
  19. data/config/routes.rb +7 -3
  20. data/lib/generators/rails_performance/install/USAGE +8 -0
  21. data/lib/generators/rails_performance/install/install_generator.rb +8 -0
  22. data/lib/generators/rails_performance/install/templates/initializer.rb +23 -0
  23. data/lib/rails_performance.rb +40 -7
  24. data/lib/rails_performance/data_source.rb +52 -13
  25. data/lib/rails_performance/engine.rb +39 -18
  26. data/lib/rails_performance/extensions/{capture_everything.rb → trace.rb} +2 -2
  27. data/lib/rails_performance/gems/custom_ext.rb +33 -0
  28. data/lib/rails_performance/gems/delayed_job_ext.rb +54 -0
  29. data/lib/rails_performance/gems/grape_ext.rb +35 -0
  30. data/lib/rails_performance/gems/rake_ext.rb +40 -0
  31. data/lib/rails_performance/gems/{sidekiq.rb → sidekiq_ext.rb} +14 -12
  32. data/lib/rails_performance/instrument/metrics_collector.rb +5 -3
  33. data/lib/rails_performance/models/base_record.rb +12 -0
  34. data/lib/rails_performance/models/custom_record.rb +48 -0
  35. data/lib/rails_performance/models/delayed_job_record.rb +62 -0
  36. data/lib/rails_performance/models/grape_record.rb +61 -0
  37. data/lib/rails_performance/models/rake_record.rb +49 -0
  38. data/lib/rails_performance/models/request_record.rb +98 -0
  39. data/lib/rails_performance/models/sidekiq_record.rb +66 -0
  40. data/lib/rails_performance/models/trace_record.rb +19 -0
  41. data/lib/rails_performance/rails/middleware.rb +42 -16
  42. data/lib/rails_performance/rails/query_builder.rb +1 -1
  43. data/lib/rails_performance/reports/breakdown_report.rb +4 -16
  44. data/lib/rails_performance/reports/crash_report.rb +4 -15
  45. data/lib/rails_performance/reports/recent_requests_report.rb +7 -44
  46. data/lib/rails_performance/reports/trace_report.rb +1 -1
  47. data/lib/rails_performance/{models → thread}/current_request.rb +9 -4
  48. data/lib/rails_performance/utils.rb +15 -29
  49. data/lib/rails_performance/version.rb +1 -1
  50. metadata +96 -10
  51. data/lib/rails_performance/models/job_record.rb +0 -48
  52. data/lib/rails_performance/models/record.rb +0 -68
@@ -1,68 +0,0 @@
1
- module RailsPerformance
2
- module Models
3
- class Record < BaseRecord
4
- attr_reader :controller, :action, :format, :status, :datetime, :datetimei, :method, :path, :request_id
5
-
6
- def Record.find_by(request_id:)
7
- keys, values = RP::Utils.fetch_from_redis("performance|*|request_id|#{request_id}|*")
8
-
9
- return nil if keys.blank?
10
- return nil if values.blank?
11
-
12
- RP::Models::Record.new(keys[0], values[0])
13
- end
14
-
15
- # key = performance|
16
- # controller|HomeController|
17
- # action|index|
18
- # format|html|
19
- # status|200|
20
- # datetime|20200124T0523|
21
- # datetimei|1579861423|
22
- # method|GET|
23
- # path|/|
24
- # request_id|454545454545454545|
25
- # END
26
- # = {"view_runtime":8.444603008683771,"db_runtime":0,"duration":9.216095000000001}
27
- # value = JSON
28
- def initialize(key, value)
29
- @json = value
30
-
31
- items = key.split("|")
32
-
33
- @controller = items[2]
34
- @action = items[4]
35
- @format = items[6]
36
- @status = items[8]
37
- @datetime = items[10]
38
- @datetimei = items[12]
39
- @method = items[14]
40
- @path = items[16]
41
- @request_id = items[18]
42
- end
43
-
44
- def controller_action
45
- "#{controller}##{action}"
46
- end
47
-
48
- def controller_action_format
49
- "#{controller}##{action}|#{format}"
50
- end
51
-
52
- def to_h
53
- {
54
- controller: controller,
55
- action: action,
56
- format: format,
57
- method: method,
58
- path: path,
59
- duration: ms(duration),
60
- view_runtime: ms(value['view_runtime']),
61
- db_runtime: ms(value['db_runtime']),
62
- HTTP_REFERER: value['HTTP_REFERER']
63
- }
64
- end
65
-
66
- end
67
- end
68
- end