rails-profiler 0.31.0 → 0.31.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +139 -0
  3. data/app/assets/builds/profiler-toolbar.js +13 -6
  4. data/app/assets/builds/profiler.js +53 -33
  5. data/app/controllers/profiler/api/ajax_controller.rb +6 -0
  6. data/app/controllers/profiler/api/env_vars_controller.rb +10 -0
  7. data/lib/profiler/allocation_counter.rb +21 -0
  8. data/lib/profiler/cluster/slave_proxy.rb +6 -0
  9. data/lib/profiler/collectors/base_collector.rb +31 -0
  10. data/lib/profiler/collectors/cache_collector.rb +5 -0
  11. data/lib/profiler/collectors/database_collector.rb +5 -0
  12. data/lib/profiler/collectors/exception_collector.rb +5 -0
  13. data/lib/profiler/collectors/flamegraph_collector.rb +5 -0
  14. data/lib/profiler/collectors/http_collector.rb +6 -1
  15. data/lib/profiler/collectors/log_collector.rb +5 -0
  16. data/lib/profiler/collectors/request_collector.rb +14 -11
  17. data/lib/profiler/collectors/view_collector.rb +5 -0
  18. data/lib/profiler/configuration.rb +33 -7
  19. data/lib/profiler/console_profiler.rb +3 -18
  20. data/lib/profiler/env_override_store.rb +54 -43
  21. data/lib/profiler/job_profiler.rb +3 -16
  22. data/lib/profiler/mcp/body_formatter.rb +4 -4
  23. data/lib/profiler/mcp/file_cache.rb +19 -7
  24. data/lib/profiler/mcp/resources/recent_requests.rb +2 -0
  25. data/lib/profiler/mcp/tools/delete_env_var.rb +3 -1
  26. data/lib/profiler/mcp/tools/get_profile_detail.rb +13 -1
  27. data/lib/profiler/mcp/tools/get_test_profile_detail.rb +1 -1
  28. data/lib/profiler/mcp/tools/list_env_vars.rb +3 -0
  29. data/lib/profiler/mcp/tools/reset_all_env_vars.rb +3 -0
  30. data/lib/profiler/mcp/tools/reset_env_var.rb +3 -0
  31. data/lib/profiler/mcp/tools/set_env_var.rb +2 -0
  32. data/lib/profiler/middleware/capturing_body.rb +112 -0
  33. data/lib/profiler/middleware/profiler_middleware.rb +261 -53
  34. data/lib/profiler/middleware/streamed_profile.rb +135 -0
  35. data/lib/profiler/middleware/toolbar_injector.rb +3 -10
  36. data/lib/profiler/models/profile.rb +69 -5
  37. data/lib/profiler/redaction.rb +10 -0
  38. data/lib/profiler/storage/base_store.rb +5 -1
  39. data/lib/profiler/storage/blob_store.rb +28 -4
  40. data/lib/profiler/storage/file_store.rb +21 -15
  41. data/lib/profiler/storage/memory_store.rb +6 -0
  42. data/lib/profiler/storage/private_files.rb +135 -0
  43. data/lib/profiler/storage/redis_store.rb +6 -0
  44. data/lib/profiler/storage/sqlite_store.rb +26 -8
  45. data/lib/profiler/storage/token.rb +24 -0
  46. data/lib/profiler/test_profiler.rb +3 -18
  47. data/lib/profiler/version.rb +1 -1
  48. data/lib/profiler.rb +12 -0
  49. metadata +10 -5
data/lib/profiler.rb CHANGED
@@ -5,6 +5,7 @@ require_relative "profiler/boot_env"
5
5
  require_relative "profiler/version"
6
6
  require_relative "profiler/configuration"
7
7
  require_relative "profiler/redaction"
8
+ require_relative "profiler/allocation_counter"
8
9
 
9
10
  module Profiler
10
11
  class Error < StandardError; end
@@ -28,6 +29,15 @@ module Profiler
28
29
  @storage ||= configuration.storage_backend
29
30
  end
30
31
 
32
+ # Saves a profile from a path of the application (a job, a console command, a test, an
33
+ # outbound HTTP call): a storage error loses the profile, never the application's work.
34
+ def save_profile(profile, from:)
35
+ storage.save(profile.token, profile)
36
+ rescue StandardError => e
37
+ warn "[Profiler] #{from}: could not save profile #{profile.token}: #{e.class}: #{e.message}"
38
+ nil
39
+ end
40
+
31
41
  def env_override_store
32
42
  @env_override_store ||= EnvOverrideStore.new
33
43
  end
@@ -124,6 +134,8 @@ require_relative "profiler/collectors/i18n_collector"
124
134
  require_relative "profiler/collectors/env_collector"
125
135
  require_relative "profiler/collectors/mailer_collector"
126
136
 
137
+ require_relative "profiler/storage/token"
138
+ require_relative "profiler/storage/private_files"
127
139
  require_relative "profiler/env_override_store"
128
140
  require_relative "profiler/instrumentation/thread_context_propagation"
129
141
  require_relative "profiler/sse/event_bus"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-profiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0
4
+ version: 0.31.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sébastien Duplessy
@@ -133,6 +133,7 @@ files:
133
133
  - config/routes.rb
134
134
  - exe/profiler-mcp
135
135
  - lib/profiler.rb
136
+ - lib/profiler/allocation_counter.rb
136
137
  - lib/profiler/boot_env.rb
137
138
  - lib/profiler/cluster/master_client.rb
138
139
  - lib/profiler/cluster/security.rb
@@ -206,8 +207,10 @@ files:
206
207
  - lib/profiler/mcp/tools/reset_env_var.rb
207
208
  - lib/profiler/mcp/tools/run_tests.rb
208
209
  - lib/profiler/mcp/tools/set_env_var.rb
210
+ - lib/profiler/middleware/capturing_body.rb
209
211
  - lib/profiler/middleware/cors_middleware.rb
210
212
  - lib/profiler/middleware/profiler_middleware.rb
213
+ - lib/profiler/middleware/streamed_profile.rb
211
214
  - lib/profiler/middleware/toolbar_injector.rb
212
215
  - lib/profiler/models/profile.rb
213
216
  - lib/profiler/models/sql_query.rb
@@ -222,8 +225,10 @@ files:
222
225
  - lib/profiler/storage/blob_store.rb
223
226
  - lib/profiler/storage/file_store.rb
224
227
  - lib/profiler/storage/memory_store.rb
228
+ - lib/profiler/storage/private_files.rb
225
229
  - lib/profiler/storage/redis_store.rb
226
230
  - lib/profiler/storage/sqlite_store.rb
231
+ - lib/profiler/storage/token.rb
227
232
  - lib/profiler/tasks/profiler.rake
228
233
  - lib/profiler/test_helpers/minitest_support.rb
229
234
  - lib/profiler/test_helpers/reporter.rb
@@ -233,13 +238,13 @@ files:
233
238
  - lib/profiler/test_runner/run_store.rb
234
239
  - lib/profiler/test_runner/runner.rb
235
240
  - lib/profiler/version.rb
236
- homepage: https://git.duplessy.eu/sebastien/rails-profiler-gem
241
+ homepage: https://github.com/Pepsit36/rails-profiler
237
242
  licenses:
238
243
  - MIT
239
244
  metadata:
240
- homepage_uri: https://git.duplessy.eu/sebastien/rails-profiler-gem
241
- source_code_uri: https://git.duplessy.eu/sebastien/rails-profiler-gem
242
- changelog_uri: https://git.duplessy.eu/sebastien/rails-profiler-gem/-/blob/master/CHANGELOG.md
245
+ homepage_uri: https://github.com/Pepsit36/rails-profiler
246
+ source_code_uri: https://github.com/Pepsit36/rails-profiler
247
+ changelog_uri: https://github.com/Pepsit36/rails-profiler/blob/master/CHANGELOG.md
243
248
  post_install_message:
244
249
  rdoc_options: []
245
250
  require_paths: