rack-mini-profiler 1.0.2 → 3.1.1

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +145 -21
  3. data/README.md +201 -94
  4. data/lib/enable_rails_patches.rb +5 -0
  5. data/lib/generators/rack_mini_profiler/USAGE +9 -0
  6. data/lib/generators/rack_mini_profiler/install_generator.rb +13 -0
  7. data/lib/generators/{rack_profiler/templates/rack_profiler.rb → rack_mini_profiler/templates/rack_mini_profiler.rb} +1 -1
  8. data/lib/generators/rack_profiler/install_generator.rb +6 -3
  9. data/lib/html/dot.1.1.2.min.js +2 -0
  10. data/lib/html/includes.css +144 -45
  11. data/lib/html/includes.js +1420 -1009
  12. data/lib/html/includes.scss +538 -441
  13. data/lib/html/includes.tmpl +231 -148
  14. data/lib/html/pretty-print.js +810 -0
  15. data/lib/html/profile_handler.js +1 -1
  16. data/lib/html/rack-mini-profiler.css +3 -0
  17. data/lib/html/rack-mini-profiler.js +2 -0
  18. data/lib/html/share.html +0 -1
  19. data/lib/html/speedscope/LICENSE +21 -0
  20. data/lib/html/speedscope/README.md +3 -0
  21. data/lib/html/speedscope/demangle-cpp.1768f4cc.js +4 -0
  22. data/lib/html/speedscope/favicon-16x16.f74b3187.png +0 -0
  23. data/lib/html/speedscope/favicon-32x32.bc503437.png +0 -0
  24. data/lib/html/speedscope/file-format-schema.json +324 -0
  25. data/lib/html/speedscope/fonts/source-code-pro-regular.css +8 -0
  26. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff +0 -0
  27. data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff2 +0 -0
  28. data/lib/html/speedscope/import.cf0fa83f.js +115 -0
  29. data/lib/html/speedscope/index.html +2 -0
  30. data/lib/html/speedscope/release.txt +3 -0
  31. data/lib/html/speedscope/reset.8c46b7a1.css +2 -0
  32. data/lib/html/speedscope/source-map.438fa06b.js +24 -0
  33. data/lib/html/speedscope/speedscope.44364064.js +200 -0
  34. data/lib/html/vendor.js +848 -0
  35. data/lib/mini_profiler/asset_version.rb +3 -2
  36. data/lib/mini_profiler/client_settings.rb +15 -7
  37. data/lib/mini_profiler/config.rb +51 -5
  38. data/lib/mini_profiler/gc_profiler.rb +1 -1
  39. data/lib/mini_profiler/profiling_methods.rb +13 -8
  40. data/lib/mini_profiler/snapshots_transporter.rb +109 -0
  41. data/lib/mini_profiler/storage/abstract_store.rb +52 -1
  42. data/lib/mini_profiler/storage/file_store.rb +7 -3
  43. data/lib/mini_profiler/storage/memcache_store.rb +13 -7
  44. data/lib/mini_profiler/storage/memory_store.rb +100 -7
  45. data/lib/mini_profiler/storage/redis_store.rb +226 -3
  46. data/lib/mini_profiler/storage.rb +7 -0
  47. data/lib/mini_profiler/timer_struct/base.rb +2 -0
  48. data/lib/mini_profiler/timer_struct/custom.rb +1 -0
  49. data/lib/mini_profiler/timer_struct/page.rb +60 -4
  50. data/lib/mini_profiler/timer_struct/request.rb +53 -11
  51. data/lib/mini_profiler/timer_struct/sql.rb +6 -2
  52. data/lib/mini_profiler/timer_struct.rb +8 -0
  53. data/lib/mini_profiler/version.rb +2 -1
  54. data/lib/{mini_profiler/profiler.rb → mini_profiler.rb} +400 -83
  55. data/lib/mini_profiler_rails/railtie.rb +89 -7
  56. data/lib/mini_profiler_rails/railtie_methods.rb +61 -0
  57. data/lib/patches/db/activerecord.rb +1 -12
  58. data/lib/patches/db/mongo.rb +1 -1
  59. data/lib/patches/db/moped.rb +1 -1
  60. data/lib/patches/db/mysql2/alias_method.rb +30 -0
  61. data/lib/patches/db/mysql2/prepend.rb +34 -0
  62. data/lib/patches/db/mysql2.rb +4 -27
  63. data/lib/patches/db/plucky.rb +4 -4
  64. data/lib/patches/db/riak.rb +1 -1
  65. data/lib/patches/net_patches.rb +21 -10
  66. data/lib/patches/sql_patches.rb +13 -5
  67. data/lib/prepend_mysql2_patch.rb +5 -0
  68. data/lib/prepend_net_http_patch.rb +5 -0
  69. data/lib/rack-mini-profiler.rb +1 -24
  70. data/rack-mini-profiler.gemspec +17 -8
  71. metadata +156 -32
  72. data/lib/html/jquery.1.7.1.js +0 -4
  73. data/lib/html/jquery.tmpl.js +0 -486
  74. data/lib/html/list.css +0 -9
  75. data/lib/html/list.js +0 -38
  76. data/lib/html/list.tmpl +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4fa3a381694869814cd3d19c37f76c8c0a4bdddda170ed5199266a14e82e6c55
4
- data.tar.gz: c75b035729657117744511f53ced6c7fe76383d5b7ee253a3aa5af1a60b1364c
3
+ metadata.gz: bced31d81d2044a03b4c98ccd43359253866115a7cdec13897155df6df2cf58b
4
+ data.tar.gz: ef8fe2fa2f9ab20c6d8d2fe9138e693ce9891ad40d4af37d7e4cad86b1edc233
5
5
  SHA512:
6
- metadata.gz: 1198efbc5b26cc99d9a0e296fa82f45ea27eb590489324a9cca1bfd764e3994e88cfd4b7d9e16db251b08d570cc6571653f25b23d89bad730323ac3b5369d730
7
- data.tar.gz: 8ebb0d569583e67667b725443fd9349a4c9cd588320ec8d57ec49ab18a82a7e9a5e92cd36c346f7b94448844a6b37bc2874e354629e5c3fc8bb9d4c8714734d9
6
+ metadata.gz: e8d03dadee75d6e1bccff74b9b8359fdc6b4c574652874b0f6c70e873c8ce7c131a25114051f5001bc906add142c4660786b7d8efff2242702b9b4327fdce6b6
7
+ data.tar.gz: 5399488dbf48cb7c270a8095f3555965015eccf2abb0aeeeb2190dec604a4748e7ad43ea5ca3d295d8238e4369fbdc95a6322661e6b5274dc665e2ad6ed9298e
data/CHANGELOG.md CHANGED
@@ -1,10 +1,134 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 1.0.2 2019-02-05
3
+ ## 3.1.1 - 2023-08-01
4
+
5
+ - [FIX] Include configured base path in speedscope iframe URL [#587](https://github.com/MiniProfiler/rack-mini-profiler/pull/587)
6
+ - [FIX] Race condition starting CacheCleanupThread [#586](https://github.com/MiniProfiler/rack-mini-profiler/pull/586)
7
+ - [FEATURE] Add controller name to description [#567](https://github.com/MiniProfiler/rack-mini-profiler/pull/567)
8
+ - [FIX] 'more' link w/HTTPS [#574](https://github.com/MiniProfiler/rack-mini-profiler/pull/574)
9
+
10
+ ## 3.1.0 - 2023-04-11
11
+
12
+ - [FEATURE] The query parameter that RMP uses (by default, pp) is now configurable [#553](https://github.com/MiniProfiler/rack-mini-profiler/pull/553)
13
+ - [FEATURE] You can now opt-out of the Net::HTTP patch by using RACK_MINI_PROFILER_PATCH_NET_HTTP="false"
14
+ - [FIX] Error responses now include header values from the app, and stackprof not installed message now has correct content [#547](https://github.com/MiniProfiler/rack-mini-profiler/pull/547)
15
+ - [FIX] RMP pages now have more valid HTML, with title elements [#552](https://github.com/MiniProfiler/rack-mini-profiler/pull/552)
16
+ - [BREAKING CHANGE] Ruby 2.4 and Ruby 2.5 are no longer supported.
17
+ - [FIX] Now works with apps that don't otherwise require erb [#531](https://github.com/MiniProfiler/rack-mini-profiler/pull/531)
18
+ - [DOCS] Added Heroku Redis instructions
19
+ - [DEPRECATION] We are changing the name of the generators to `rack_mini_profiler`, e.g. `rack_mini_profiler:install` [#550](https://github.com/MiniProfiler/rack-mini-profiler/pull/550)
20
+
21
+ ## 3.0.0 - 2022-02-24
22
+
23
+ - PERF: Improve snapshots page performance (#518) (introduces breaking changes to the API of `AbstractStore`, `MemoryStore` and `RedisStore`, and removes the `snapshots_limit` config option.)
24
+
25
+ ## 2.3.4 - 2022-02-23
26
+
27
+ - [FEATURE] Add cookie path support for subfolder sites
28
+ - [FIX] Remove deprecated uses of Redis#pipelined
29
+
30
+ ## 2.3.3 - 2021-08-30
31
+
32
+ - [FEATURE] Introduce `pp=flamegraph_mode`
33
+ - [FEATURE] Richer CSP configuration options
34
+ - [FEATURE] Add support for Hotwire Turbo Drive
35
+
36
+ ## 2.3.2 - 2021-04-30
37
+
38
+ - [FEATURE] Introduce `pp=async-flamegraph` for asynchronous flamegraphs
39
+
40
+ ## 2.3.1 - 2021-01-29
41
+
42
+ - [FIX] compatability with Ruby 3.0
43
+ - [FIX] compatability with peek-mysql2
44
+
45
+ ## 2.3.0 - 2020-12-29
46
+
47
+ - [FEATURE] flamegraphs are now based off speedscope
48
+
49
+ ## 2.2.1 - 2020-12-23
50
+
51
+ - [FIX] Turbolinks integration causing increasing number of GET requests
52
+ - [FEATURE] enahanced log transporter with compression and exponential backoff
53
+ - [FEATURE] sameSite=Lax added to MiniProfiler cookie
54
+
55
+ ## 2.2.0 - 2020-10-19
56
+
57
+ - [UX] Enhancements to snapshots UI
58
+ - [FEATURE] Mini Profiler cookie is now sameSite=lax
59
+ - [FEATURE] Snapshots transporter
60
+ - [FEATURE] Redact SQL queries in snapshots by default
61
+
62
+ ## 2.1.0 - 2020-09-17
63
+
64
+ - [FEATURE] Allow assets to be precompiled with Sprockets
65
+ - [FEATURE] Snapshots sampling (see README in repo)
66
+ - [FEATURE] Allow `skip_paths` config to contain regular expressions
67
+
68
+ ## 2.0.4 - 2020-08-04
69
+
70
+ - [FIX] webpacker may exist with no config, allow for that
71
+
72
+ ## 2.0.3 - 2020-07-29
73
+
74
+ - [FIX] support for deprecation free Redis 4.2
75
+ - [FEATURE] skip /packs when serving static assets
76
+ - [FEATURE] allow Net::HTTP patch to be applied with either prerpend or alias
77
+
78
+ ## 2.0.2 - 2020-05-25
79
+
80
+ - [FIX] client timings were not showing up when you clicked show trivial
81
+
82
+ ## 2.0.1 - 2020-03-17
83
+
84
+ - [REVERT] Prepend Net::HTTP patch instead of class_eval and aliasing (#429) (technique clashes with New Relic and Skylight agents)
85
+
86
+ ## 2.0.0 - 2020-03-11
87
+
88
+ - [FEATURE] Prepend Net::HTTP patch instead of class_eval and aliasing (#429)
89
+ - [FEATURE] Stop patching Rails and use `ActiveSupport::Notifications` by default (see README.md for details)
90
+
91
+ ## 1.1.6 - 2020-01-30
92
+
93
+ - [FIX] edge condition on page transition function could lead to exceptions
94
+
95
+ ## 1.1.5 - 2020-01-28
96
+
97
+ - [FIX] correct custom counter regression
98
+ - [FIX] respect max_traces_to_show
99
+ - [FIX] handle storage engine failures in whitelist mode
100
+
101
+ ## 1.1.4 - 2019-12-12
102
+
103
+ - [SECURITY] carefully crafted SQL could cause an XSS on sites that do not use CSPs
104
+
105
+ ## 1.1.3 - 2019-10-28
106
+
107
+ - [FEATURE] precompile all templates to avoid need for unsafe-eval
108
+
109
+ ## 1.1.2 - 2019-10-24
110
+
111
+ - [FIX] JS payload was not working on IE11 and leading to errors
112
+ - [FIX] Remove global singleton_class which was injected
113
+ - [FIX] Regressions post removal of jQuery
114
+
115
+ ## 1.1.1 - 2019-10-22
116
+
117
+ - [FIX] correct JavaScript fetch support header iteration (Jorge Manrubia)
118
+
119
+ ## 1.1.0 - 2019-10-01
120
+
121
+ - [FEATURE] remove jQuery dependency, switch template library to dot.js
122
+ - [FEATURE] disable all sensitive debugging methods by default (env, memory profiling) can be enabled with enable_advanced_debugging_tools.
123
+ - [FIX] when conditionally requiring rack mini profiler, asset precompile could fail
124
+ - [FEATURE] `/rack-mini-profiler/requests` can be used to monitor all requests for apps that do not have a UI (like API apps)
125
+ - [SECURITY] XSS injection in `?pp=help` via rogue uri
126
+
127
+ ## 1.0.2 - 2019-02-05
4
128
 
5
129
  - [FIX] correct script injection to work with Rails 6 and above
6
130
 
7
- ## 1.0.1 2018-12-10
131
+ ## 1.0.1 - 2018-12-10
8
132
 
9
133
  - [FIX] add support for exec_params instrumentation in PG, this method as of PG 1.1.0 no longer
10
134
  routes calls to exec / async_exec
@@ -14,7 +138,7 @@
14
138
  - [FIX] getEntriesByName is missing in iOS, workaround
15
139
  - [FEATURE] drop support for Ruby 2.2.0 we require 2.3.0 and up (EOL Ruby no longer supported)
16
140
 
17
- ## 1.0.0 2017-03-29
141
+ ## 1.0.0 - 2018-03-29
18
142
 
19
143
  - [BREAKING CHANGE] Ruby version 2.2.0 or later is required
20
144
  - [FEATURE] use new web performance API to avoid warning @MikeRogers0
@@ -22,16 +146,16 @@
22
146
  - [FIX] correct jQuery 3.0 deprecations @TiSer
23
147
  - [FIX] JS in IFRAME @naiyt
24
148
 
25
- ## 0.10.8 2017-12-01
149
+ ## 0.10.8 - 2017-12-01
26
150
 
27
151
  - [FEATURE] Add `# frozen_string_literal: true` to all `lib/**/*.rb` files
28
152
 
29
- ## 0.10.7 2017-11-24
153
+ ## 0.10.7 - 2017-11-24
30
154
 
31
155
  - [FEATURE] Replace Time.now with Process.clock_gettime(Process::CLOCK_MONOTONIC)
32
156
  - [FIX] Error with webrick and empty cache control
33
157
 
34
- ## 0.10.6 2017-10-30
158
+ ## 0.10.6 - 2017-10-30
35
159
 
36
160
  - [FEATURE] Support for vertical positions (top/bottom)
37
161
  - [FEATURE] Suppress profiler results in print media @Mike Dillon
@@ -39,11 +163,11 @@
39
163
  - [FEATURE] install generator @yhirano
40
164
  - [FEATURE] store initial cache control headers in X-MiniProfiler-Original-Cache-Control @mrasu
41
165
 
42
- ## 0.10.5 2017-05-22
166
+ ## 0.10.5 - 2017-05-22
43
167
 
44
168
  - [FIX] revert PG bind sniffing until it is properly tested
45
169
 
46
- ## 0.10.4 2017-05-17
170
+ ## 0.10.4 - 2017-05-17
47
171
 
48
172
  - [FEATURE] log binds for pg @neznauy
49
173
  - [FIX] use async exec pg monkey patch instead of exec
@@ -52,25 +176,25 @@
52
176
  - [FIX] ensure redis get_unviewed_ids returns only ids that exist
53
177
  - [FIX] correctly respect SCRIPT in env if it is sniffed by middleware
54
178
 
55
- ## 0.10.2 2017-02-08
179
+ ## 0.10.2 - 2017-02-08
56
180
 
57
181
  - [FIX] improve turbolinks support
58
182
  - [FEATURE] make location of mini_profiler injection customizable
59
183
 
60
- ## 0.10.1 2016-05-18
184
+ ## 0.10.1 - 2016-05-18
61
185
 
62
186
  - [FEATURE] push forward the security checks so no work is ever done if a valid production
63
187
  cookie is not available (@sam)
64
188
 
65
- ## 0.9.9.2 2016-03-06
189
+ ## 0.9.9.2 - 2016-03-06
66
190
 
67
191
  - [FEATURE] on pageTransition collapse previously expanded timings
68
192
 
69
- ## 0.9.9.1 2016-03-06
193
+ ## 0.9.9.1 - 2016-03-06
70
194
 
71
195
  - [FEATURE] expost MiniProfiler.pageTransition() for use by SPA web apps (@sam)
72
196
 
73
- ## 0.9.9 2016-03-06
197
+ ## 0.9.9 - 2016-03-06
74
198
 
75
199
  - [FIX] removes alias_method_chain in favor of alias_method until Ruby 1.9.3 (@ayfredlund)
76
200
  - [FIX] Dont block mongo when already patched for another db (@rrooding @kbrock)
@@ -126,7 +250,7 @@
126
250
  - [FIXED] Possible XSS (admin only)
127
251
  - [FIXED] Corrected Sql patching to avoid setting instance vars on nil which is frozen (thanks Andy, huoxito)
128
252
 
129
- ## 0.9.0.pre - 2013-12-12 (Sam Saffron)
253
+ ## 0.9.0.pre - 2013-12-05 (Sam Saffron)
130
254
  - Bumped up version to reflect the stability of the project
131
255
  - [IMPROVED] Reports for pp=profile-gc
132
256
  - [IMPROVED] pp=flamegraph&flamegraph_sample_rate=1 , allow you to specify sampling rates
@@ -136,7 +260,7 @@
136
260
  config.assets.prefix path since developers can rename the path to serve Asset Pipeline
137
261
  files from
138
262
 
139
- ## 2013-09-03
263
+ ## 0.1.31 - 2013-09-03
140
264
  - [IMPROVED] Flamegraph now has much increased fidelity
141
265
  - [REMOVED] Ripped out flamegraph so it can be isolated into a gem
142
266
  - [REMOVED] Ripped out pp=sample it just was never really used
@@ -192,13 +316,13 @@
192
316
  - [ADDED] New MemchacedStore
193
317
  - [ADDED] Rails 4 support
194
318
 
195
- ## 2012-09-12 (Sam Saffron)
319
+ ## 0.1.20 - 2012-09-12 (Sam Saffron)
196
320
  - [ADDED] pp=profile-gc: allows you to profile the GC in Ruby 1.9.3
197
321
 
198
322
  ## 0.1.19 - 2012-09-10 (Sam Saffron)
199
323
  - [FIXED] Compatibility issue with Ruby 1.8.7
200
324
 
201
- ## 0.1.17 - 2012-09-09 (Sam Saffron)
325
+ ## 0.1.17 - 2012-09-07 (Sam Saffron)
202
326
  - [FIXED] pp=sample was bust unless stacktrace was installed
203
327
 
204
328
  ## 0.1.16 - 2012-09-05 (Sam Saffron)
@@ -222,10 +346,10 @@
222
346
  ## 0.1.12.pre - 2012-08-20 (Sam Saffron)
223
347
  - [IMPROVED] Cap X-MiniProfiler-Ids at 10, otherwise the header can get killed
224
348
 
225
- ## 2012-08-10 (Sam Saffron)
349
+ ## 0.1.11.pre - 2012-08-10 (Sam Saffron)
226
350
  - [ADDED] Basic prepared statement profiling for Postgres
227
351
 
228
- ## 2012-08-07 (Sam Saffron)
352
+ ## 0.1.10 - 2012-08-07 (Sam Saffron)
229
353
  - [ADDED] Option to disable profiler for the current session (pp=disable / pp=enable)
230
354
  - [ADDED] yajl compatability contributed by Sven Riedel
231
355
 
@@ -239,7 +363,7 @@
239
363
  - [ADDED] First Paint time for Google Chrome
240
364
  - [FIXED] Ensure non Rails installs have mini profiler
241
365
 
242
- ## 2012-07-12 (Sam Saffron)
366
+ ## 0.1.6 - 2012-07-12 (Sam Saffron)
243
367
  - [ADDED] Native PG and MySql2 interceptors, this gives way more accurate times
244
368
  - [ADDED] some more client probing built in to rails
245
369
  - [IMPROVED] Refactored context so its a proper class and not a hash
@@ -253,7 +377,7 @@
253
377
  production
254
378
  - [IMPROVED] Cleaned up railties, got rid of the post authorize callback
255
379
 
256
- ## 2012-06-28 (Sam Saffron)
380
+ ## 0.1.1 - 2012-06-28 (Sam Saffron)
257
381
  - [ADDED] Started change log
258
382
  - [ADDED] added MemcacheStore
259
383
  - [IMPROVED] Corrected profiler so it properly captures POST requests (was supressing non 200s)