rack-mini-profiler 2.0.4 → 2.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/README.md +53 -5
- data/lib/html/includes.css +38 -0
- data/lib/html/includes.js +265 -175
- data/lib/html/includes.scss +35 -4
- data/lib/html/includes.tmpl +93 -3
- data/lib/html/profile_handler.js +1 -1
- data/lib/html/rack-mini-profiler.css +3 -0
- data/lib/html/rack-mini-profiler.js +2 -0
- data/lib/html/speedscope/LICENSE +21 -0
- data/lib/html/speedscope/README.md +3 -0
- data/lib/html/speedscope/demangle-cpp.1768f4cc.js +4 -0
- data/lib/html/speedscope/favicon-16x16.f74b3187.png +0 -0
- data/lib/html/speedscope/favicon-32x32.bc503437.png +0 -0
- data/lib/html/speedscope/file-format-schema.json +324 -0
- data/lib/html/speedscope/fonts/source-code-pro-regular.css +8 -0
- data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff +0 -0
- data/lib/html/speedscope/fonts/source-code-pro-v13-regular.woff2 +0 -0
- data/lib/html/speedscope/import.cf0fa83f.js +115 -0
- data/lib/html/speedscope/index.html +2 -0
- data/lib/html/speedscope/release.txt +3 -0
- data/lib/html/speedscope/reset.8c46b7a1.css +2 -0
- data/lib/html/speedscope/source-map.438fa06b.js +24 -0
- data/lib/html/speedscope/speedscope.44364064.js +200 -0
- data/lib/html/vendor.js +10 -2
- data/lib/mini_profiler/asset_version.rb +1 -1
- data/lib/mini_profiler/client_settings.rb +3 -2
- data/lib/mini_profiler/config.rb +24 -2
- data/lib/mini_profiler/profiler.rb +214 -22
- data/lib/mini_profiler/profiling_methods.rb +11 -2
- data/lib/mini_profiler/snapshots_transporter.rb +109 -0
- data/lib/mini_profiler/storage/abstract_store.rb +78 -0
- data/lib/mini_profiler/storage/memory_store.rb +54 -5
- data/lib/mini_profiler/storage/redis_store.rb +134 -0
- data/lib/mini_profiler/timer_struct/page.rb +52 -2
- data/lib/mini_profiler/timer_struct/sql.rb +2 -2
- data/lib/mini_profiler/version.rb +1 -1
- data/lib/mini_profiler_rails/railtie.rb +11 -0
- data/lib/patches/db/mysql2.rb +4 -27
- data/lib/patches/db/mysql2/alias_method.rb +30 -0
- data/lib/patches/db/mysql2/prepend.rb +34 -0
- data/lib/prepend_mysql2_patch.rb +5 -0
- data/lib/rack-mini-profiler.rb +1 -0
- data/rack-mini-profiler.gemspec +6 -4
- metadata +63 -14
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# The best kind of instrumentation is in the actual db provider, however we don't want to double instrument
|
4
|
+
|
5
|
+
class Mysql2::Result
|
6
|
+
alias_method :each_without_profiling, :each
|
7
|
+
def each(*args, &blk)
|
8
|
+
return each_without_profiling(*args, &blk) unless defined?(@miniprofiler_sql_id)
|
9
|
+
|
10
|
+
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
11
|
+
result = each_without_profiling(*args, &blk)
|
12
|
+
elapsed_time = SqlPatches.elapsed_time(start)
|
13
|
+
|
14
|
+
@miniprofiler_sql_id.report_reader_duration(elapsed_time)
|
15
|
+
result
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Mysql2::Client
|
20
|
+
alias_method :query_without_profiling, :query
|
21
|
+
def query(*args, &blk)
|
22
|
+
return query_without_profiling(*args, &blk) unless SqlPatches.should_measure?
|
23
|
+
|
24
|
+
result, record = SqlPatches.record_sql(args[0]) do
|
25
|
+
query_without_profiling(*args, &blk)
|
26
|
+
end
|
27
|
+
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
28
|
+
result
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Mysql2::Result
|
4
|
+
module MiniProfiler
|
5
|
+
def each(*args, &blk)
|
6
|
+
return super unless defined?(@miniprofiler_sql_id)
|
7
|
+
|
8
|
+
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
9
|
+
result = super
|
10
|
+
elapsed_time = SqlPatches.elapsed_time(start)
|
11
|
+
|
12
|
+
@miniprofiler_sql_id.report_reader_duration(elapsed_time)
|
13
|
+
result
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
prepend MiniProfiler
|
18
|
+
end
|
19
|
+
|
20
|
+
class Mysql2::Client
|
21
|
+
module MiniProfiler
|
22
|
+
def query(*args, &blk)
|
23
|
+
return super unless SqlPatches.should_measure?
|
24
|
+
|
25
|
+
result, record = SqlPatches.record_sql(args[0]) do
|
26
|
+
super
|
27
|
+
end
|
28
|
+
result.instance_variable_set("@miniprofiler_sql_id", record) if result
|
29
|
+
result
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
prepend MiniProfiler
|
34
|
+
end
|
data/lib/rack-mini-profiler.rb
CHANGED
@@ -26,6 +26,7 @@ require 'mini_profiler/profiling_methods'
|
|
26
26
|
require 'mini_profiler/context'
|
27
27
|
require 'mini_profiler/client_settings'
|
28
28
|
require 'mini_profiler/gc_profiler'
|
29
|
+
require 'mini_profiler/snapshots_transporter'
|
29
30
|
require 'mini_profiler/profiler'
|
30
31
|
require 'patches/sql_patches'
|
31
32
|
require 'patches/net_patches'
|
data/rack-mini-profiler.gemspec
CHANGED
@@ -28,20 +28,22 @@ Gem::Specification.new do |s|
|
|
28
28
|
'changelog_uri' => 'https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md'
|
29
29
|
}
|
30
30
|
|
31
|
-
s.add_development_dependency 'rake'
|
31
|
+
s.add_development_dependency 'rake'
|
32
32
|
s.add_development_dependency 'rack-test'
|
33
33
|
s.add_development_dependency 'dalli'
|
34
34
|
s.add_development_dependency 'rspec', '~> 3.6.0'
|
35
35
|
s.add_development_dependency 'redis'
|
36
36
|
s.add_development_dependency 'sassc'
|
37
|
-
s.add_development_dependency '
|
37
|
+
s.add_development_dependency 'stackprof'
|
38
38
|
s.add_development_dependency 'rubocop'
|
39
39
|
s.add_development_dependency 'mini_racer'
|
40
40
|
s.add_development_dependency 'nokogiri'
|
41
41
|
s.add_development_dependency 'rubocop-discourse'
|
42
42
|
s.add_development_dependency 'listen'
|
43
|
-
s.add_development_dependency 'webpacker'
|
44
|
-
s.add_development_dependency 'rails', '~>
|
43
|
+
s.add_development_dependency 'webpacker'
|
44
|
+
s.add_development_dependency 'rails', '~> 6.0'
|
45
|
+
s.add_development_dependency 'webmock', '3.9.1'
|
46
|
+
s.add_development_dependency 'rubyzip'
|
45
47
|
|
46
48
|
s.require_paths = ["lib"]
|
47
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-mini-profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-01-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -30,16 +30,16 @@ dependencies:
|
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '0'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - "
|
40
|
+
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rack-test
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,7 +111,7 @@ dependencies:
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '0'
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
114
|
+
name: stackprof
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
@@ -198,30 +198,58 @@ dependencies:
|
|
198
198
|
name: webpacker
|
199
199
|
requirement: !ruby/object:Gem::Requirement
|
200
200
|
requirements:
|
201
|
-
- - "
|
201
|
+
- - ">="
|
202
202
|
- !ruby/object:Gem::Version
|
203
|
-
version: '
|
203
|
+
version: '0'
|
204
204
|
type: :development
|
205
205
|
prerelease: false
|
206
206
|
version_requirements: !ruby/object:Gem::Requirement
|
207
207
|
requirements:
|
208
|
-
- - "
|
208
|
+
- - ">="
|
209
209
|
- !ruby/object:Gem::Version
|
210
|
-
version: '
|
210
|
+
version: '0'
|
211
211
|
- !ruby/object:Gem::Dependency
|
212
212
|
name: rails
|
213
213
|
requirement: !ruby/object:Gem::Requirement
|
214
214
|
requirements:
|
215
215
|
- - "~>"
|
216
216
|
- !ruby/object:Gem::Version
|
217
|
-
version: '
|
217
|
+
version: '6.0'
|
218
218
|
type: :development
|
219
219
|
prerelease: false
|
220
220
|
version_requirements: !ruby/object:Gem::Requirement
|
221
221
|
requirements:
|
222
222
|
- - "~>"
|
223
223
|
- !ruby/object:Gem::Version
|
224
|
-
version: '
|
224
|
+
version: '6.0'
|
225
|
+
- !ruby/object:Gem::Dependency
|
226
|
+
name: webmock
|
227
|
+
requirement: !ruby/object:Gem::Requirement
|
228
|
+
requirements:
|
229
|
+
- - '='
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: 3.9.1
|
232
|
+
type: :development
|
233
|
+
prerelease: false
|
234
|
+
version_requirements: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - '='
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: 3.9.1
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: rubyzip
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - ">="
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: '0'
|
246
|
+
type: :development
|
247
|
+
prerelease: false
|
248
|
+
version_requirements: !ruby/object:Gem::Requirement
|
249
|
+
requirements:
|
250
|
+
- - ">="
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '0'
|
225
253
|
description: Profiling toolkit for Rack applications with Rails integration. Client
|
226
254
|
Side profiling, DB profiling and Server profiling.
|
227
255
|
email: sam.saffron@gmail.com
|
@@ -244,7 +272,24 @@ files:
|
|
244
272
|
- lib/html/includes.tmpl
|
245
273
|
- lib/html/pretty-print.js
|
246
274
|
- lib/html/profile_handler.js
|
275
|
+
- lib/html/rack-mini-profiler.css
|
276
|
+
- lib/html/rack-mini-profiler.js
|
247
277
|
- lib/html/share.html
|
278
|
+
- lib/html/speedscope/LICENSE
|
279
|
+
- lib/html/speedscope/README.md
|
280
|
+
- lib/html/speedscope/demangle-cpp.1768f4cc.js
|
281
|
+
- lib/html/speedscope/favicon-16x16.f74b3187.png
|
282
|
+
- lib/html/speedscope/favicon-32x32.bc503437.png
|
283
|
+
- lib/html/speedscope/file-format-schema.json
|
284
|
+
- lib/html/speedscope/fonts/source-code-pro-regular.css
|
285
|
+
- lib/html/speedscope/fonts/source-code-pro-v13-regular.woff
|
286
|
+
- lib/html/speedscope/fonts/source-code-pro-v13-regular.woff2
|
287
|
+
- lib/html/speedscope/import.cf0fa83f.js
|
288
|
+
- lib/html/speedscope/index.html
|
289
|
+
- lib/html/speedscope/release.txt
|
290
|
+
- lib/html/speedscope/reset.8c46b7a1.css
|
291
|
+
- lib/html/speedscope/source-map.438fa06b.js
|
292
|
+
- lib/html/speedscope/speedscope.44364064.js
|
248
293
|
- lib/html/vendor.js
|
249
294
|
- lib/mini_profiler/asset_version.rb
|
250
295
|
- lib/mini_profiler/client_settings.rb
|
@@ -253,6 +298,7 @@ files:
|
|
253
298
|
- lib/mini_profiler/gc_profiler.rb
|
254
299
|
- lib/mini_profiler/profiler.rb
|
255
300
|
- lib/mini_profiler/profiling_methods.rb
|
301
|
+
- lib/mini_profiler/snapshots_transporter.rb
|
256
302
|
- lib/mini_profiler/storage/abstract_store.rb
|
257
303
|
- lib/mini_profiler/storage/file_store.rb
|
258
304
|
- lib/mini_profiler/storage/memcache_store.rb
|
@@ -271,6 +317,8 @@ files:
|
|
271
317
|
- lib/patches/db/mongo.rb
|
272
318
|
- lib/patches/db/moped.rb
|
273
319
|
- lib/patches/db/mysql2.rb
|
320
|
+
- lib/patches/db/mysql2/alias_method.rb
|
321
|
+
- lib/patches/db/mysql2/prepend.rb
|
274
322
|
- lib/patches/db/neo4j.rb
|
275
323
|
- lib/patches/db/nobrainer.rb
|
276
324
|
- lib/patches/db/oracle_enhanced.rb
|
@@ -281,6 +329,7 @@ files:
|
|
281
329
|
- lib/patches/db/sequel.rb
|
282
330
|
- lib/patches/net_patches.rb
|
283
331
|
- lib/patches/sql_patches.rb
|
332
|
+
- lib/prepend_mysql2_patch.rb
|
284
333
|
- lib/prepend_net_http_patch.rb
|
285
334
|
- lib/rack-mini-profiler.rb
|
286
335
|
- rack-mini-profiler.gemspec
|
@@ -305,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
305
354
|
- !ruby/object:Gem::Version
|
306
355
|
version: '0'
|
307
356
|
requirements: []
|
308
|
-
rubygems_version: 3.
|
357
|
+
rubygems_version: 3.2.2
|
309
358
|
signing_key:
|
310
359
|
specification_version: 4
|
311
360
|
summary: Profiles loading speed for rack applications.
|