rails_mini_profiler 0.6.0 → 0.7.2

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +47 -35
  3. data/app/adapters/rails_mini_profiler/database_adapter.rb +16 -0
  4. data/app/controllers/rails_mini_profiler/application_controller.rb +9 -15
  5. data/app/controllers/rails_mini_profiler/profiled_requests_controller.rb +31 -4
  6. data/app/helpers/rails_mini_profiler/profiled_requests_helper.rb +10 -0
  7. data/app/javascript/js/clipboard_controller.js +9 -2
  8. data/app/javascript/js/filter_controller.js +4 -0
  9. data/app/javascript/stylesheets/components/buttons.scss +59 -0
  10. data/app/javascript/stylesheets/components/{profiled_request_table/profiled_request_table.scss → dropdown.scss} +0 -76
  11. data/app/javascript/stylesheets/components/input.scss +10 -0
  12. data/app/javascript/stylesheets/{navbar.scss → components/navbar.scss} +0 -0
  13. data/app/javascript/stylesheets/components/page_header.scss +7 -0
  14. data/app/javascript/stylesheets/components/{profiled_request_table/placeholder.scss → placeholder.scss} +4 -1
  15. data/app/javascript/stylesheets/components/profiled_request_table.scss +55 -0
  16. data/app/javascript/stylesheets/components/trace.scss +93 -0
  17. data/app/javascript/stylesheets/profiled_requests.scss +3 -67
  18. data/app/javascript/stylesheets/rails-mini-profiler.scss +16 -30
  19. data/app/javascript/stylesheets/traces.scss +44 -76
  20. data/app/models/rails_mini_profiler/flamegraph.rb +1 -1
  21. data/app/models/rails_mini_profiler/profiled_request.rb +1 -1
  22. data/app/models/rails_mini_profiler/trace.rb +4 -19
  23. data/app/presenters/rails_mini_profiler/controller_trace_presenter.rb +10 -2
  24. data/app/presenters/rails_mini_profiler/instantiation_trace_presenter.rb +15 -3
  25. data/app/presenters/rails_mini_profiler/profiled_request_presenter.rb +2 -2
  26. data/app/presenters/rails_mini_profiler/render_partial_trace_presenter.rb +6 -2
  27. data/app/presenters/rails_mini_profiler/render_template_trace_presenter.rb +6 -2
  28. data/app/presenters/rails_mini_profiler/sequel_trace_presenter.rb +16 -4
  29. data/app/presenters/rails_mini_profiler/trace_presenter.rb +10 -8
  30. data/app/search/rails_mini_profiler/profiled_request_search.rb +0 -1
  31. data/app/search/rails_mini_profiler/trace_search.rb +27 -0
  32. data/app/views/rails_mini_profiler/profiled_requests/shared/header/_header.erb +1 -2
  33. data/app/views/rails_mini_profiler/profiled_requests/shared/table/_table_head.erb +7 -7
  34. data/app/views/rails_mini_profiler/profiled_requests/{shared → show}/_trace.html.erb +24 -22
  35. data/app/views/rails_mini_profiler/profiled_requests/show/_trace_list.erb +12 -0
  36. data/app/views/rails_mini_profiler/profiled_requests/show/_trace_list_header.erb +87 -0
  37. data/app/views/rails_mini_profiler/profiled_requests/show/_trace_list_placeholder.erb +12 -0
  38. data/app/views/rails_mini_profiler/profiled_requests/show.html.erb +4 -17
  39. data/db/migrate/20210621185018_create_rmp.rb +3 -3
  40. data/lib/generators/rails_mini_profiler/templates/rails_mini_profiler.rb.erb +1 -0
  41. data/lib/rails_mini_profiler/badge.rb +20 -11
  42. data/lib/rails_mini_profiler/configuration/user_interface.rb +26 -0
  43. data/lib/rails_mini_profiler/configuration.rb +4 -0
  44. data/lib/rails_mini_profiler/flamegraph_guard.rb +10 -6
  45. data/lib/rails_mini_profiler/middleware.rb +12 -10
  46. data/lib/rails_mini_profiler/request_context.rb +22 -18
  47. data/lib/rails_mini_profiler/request_wrapper.rb +12 -55
  48. data/lib/rails_mini_profiler/response_wrapper.rb +21 -17
  49. data/lib/rails_mini_profiler/{tracing → tracers}/controller_tracer.rb +15 -1
  50. data/lib/rails_mini_profiler/tracers/instantiation_tracer.rb +17 -0
  51. data/lib/rails_mini_profiler/{tracing → tracers}/null_trace.rb +1 -1
  52. data/lib/rails_mini_profiler/tracers/registry.rb +76 -0
  53. data/lib/rails_mini_profiler/tracers/rmp_tracer.rb +17 -0
  54. data/lib/rails_mini_profiler/{tracing → tracers}/sequel_tracer.rb +15 -1
  55. data/lib/rails_mini_profiler/{tracing → tracers}/sequel_tracker.rb +4 -1
  56. data/lib/rails_mini_profiler/{tracing → tracers}/subscriptions.rb +6 -12
  57. data/lib/rails_mini_profiler/{tracing → tracers}/trace.rb +2 -2
  58. data/lib/rails_mini_profiler/tracers/trace_factory.rb +27 -0
  59. data/lib/rails_mini_profiler/tracers/tracer.rb +52 -0
  60. data/lib/rails_mini_profiler/tracers/view_tracer.rb +29 -0
  61. data/lib/rails_mini_profiler/tracers.rb +14 -0
  62. data/lib/rails_mini_profiler/user.rb +1 -1
  63. data/lib/rails_mini_profiler/version.rb +1 -1
  64. data/lib/rails_mini_profiler.rb +1 -1
  65. data/vendor/assets/javascripts/rails-mini-profiler.css +1 -1
  66. data/vendor/assets/javascripts/rails-mini-profiler.js +1 -1
  67. metadata +39 -26
  68. data/app/javascript/stylesheets/components/page_header/page_header.scss +0 -3
  69. data/app/models/rails_mini_profiler/controller_trace.rb +0 -37
  70. data/app/models/rails_mini_profiler/instantiation_trace.rb +0 -37
  71. data/app/models/rails_mini_profiler/render_partial_trace.rb +0 -37
  72. data/app/models/rails_mini_profiler/render_template_trace.rb +0 -37
  73. data/app/models/rails_mini_profiler/rmp_trace.rb +0 -35
  74. data/app/models/rails_mini_profiler/sequel_trace.rb +0 -37
  75. data/lib/rails_mini_profiler/tracing/trace_factory.rb +0 -37
  76. data/lib/rails_mini_profiler/tracing/tracer.rb +0 -31
  77. data/lib/rails_mini_profiler/tracing/view_tracer.rb +0 -12
  78. data/lib/rails_mini_profiler/tracing.rb +0 -11
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class ControllerTrace < Trace
25
- store :payload, accessors: %i[view_runtime db_runtime]
26
-
27
- class << self
28
- def find_sti_class(_)
29
- super(name)
30
- end
31
-
32
- def sti_name
33
- 'process_action.action_controller'
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class InstantiationTrace < Trace
25
- store :payload, accessors: %i[record_count class_name]
26
-
27
- class << self
28
- def find_sti_class(_)
29
- super(name)
30
- end
31
-
32
- def sti_name
33
- 'instantiation.active_record'
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class RenderPartialTrace < Trace
25
- store :payload, accessors: %i[identifier]
26
-
27
- class << self
28
- def find_sti_class(_)
29
- super(name)
30
- end
31
-
32
- def sti_name
33
- 'render_partial.action_view'
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class RenderTemplateTrace < Trace
25
- store :payload, accessors: %i[identifier]
26
-
27
- class << self
28
- def find_sti_class(_)
29
- super(name)
30
- end
31
-
32
- def sti_name
33
- 'render_template.action_view'
34
- end
35
- end
36
- end
37
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class RmpTrace < Trace
25
- class << self
26
- def find_sti_class(_)
27
- super(name)
28
- end
29
-
30
- def sti_name
31
- 'rails_mini_profiler.total_time'
32
- end
33
- end
34
- end
35
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # == Schema Information
4
- #
5
- # Table name: rmp_traces
6
- #
7
- # id :integer not null, primary key
8
- # rmp_profiled_request_id :bigint not null
9
- # name :string
10
- # start :bigint
11
- # finish :bigint
12
- # duration :integer
13
- # allocations :bigint
14
- # payload :json
15
- # backtrace :json
16
- # created_at :datetime not null
17
- # updated_at :datetime not null
18
- #
19
- # Indexes
20
- #
21
- # index_rmp_traces_on_rmp_profiled_request_id (rmp_profiled_request_id)
22
- #
23
- module RailsMiniProfiler
24
- class SequelTrace < Trace
25
- store :payload, accessors: %i[name sql binds]
26
-
27
- class << self
28
- def find_sti_class(_)
29
- super(name)
30
- end
31
-
32
- def sti_name
33
- 'sql.active_record'
34
- end
35
- end
36
- end
37
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RailsMiniProfiler
4
- module Tracing
5
- class TraceFactory
6
- class << self
7
- def create(event)
8
- factory = new(event)
9
- factory.create
10
- end
11
- end
12
-
13
- def initialize(event)
14
- @event = event
15
- end
16
-
17
- def create
18
- trace_class.new(@event).trace
19
- end
20
-
21
- private
22
-
23
- def trace_class
24
- case @event.name
25
- when 'sql.active_record'
26
- SequelTracer
27
- when 'render_template.action_view', 'render_partial.action_view'
28
- ViewTracer
29
- when 'process_action.action_controller'
30
- ControllerTracer
31
- else
32
- Tracer
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RailsMiniProfiler
4
- module Tracing
5
- class Tracer
6
- def initialize(event)
7
- @event = event_data(event)
8
- end
9
-
10
- def trace
11
- Trace.new(**@event)
12
- end
13
-
14
- private
15
-
16
- def event_data(event)
17
- start = (event.time.to_f * 100_000).to_i
18
- finish = (event.end.to_f * 100_000).to_i
19
- {
20
- name: event.name,
21
- start: start,
22
- finish: finish,
23
- duration: finish - start,
24
- allocations: event.allocations,
25
- backtrace: Rails.backtrace_cleaner.clean(caller),
26
- payload: event.payload
27
- }
28
- end
29
- end
30
- end
31
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RailsMiniProfiler
4
- module Tracing
5
- class ViewTracer < Tracer
6
- def trace
7
- @event[:payload].slice!(:identifier, :count)
8
- super
9
- end
10
- end
11
- end
12
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_mini_profiler/tracing/subscriptions'
4
- require 'rails_mini_profiler/tracing/trace'
5
- require 'rails_mini_profiler/tracing/tracer'
6
- require 'rails_mini_profiler/tracing/controller_tracer'
7
- require 'rails_mini_profiler/tracing/sequel_tracker'
8
- require 'rails_mini_profiler/tracing/sequel_tracer'
9
- require 'rails_mini_profiler/tracing/view_tracer'
10
- require 'rails_mini_profiler/tracing/null_trace'
11
- require 'rails_mini_profiler/tracing/trace_factory'