dial 0.3.1 → 0.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/dial/configuration.rb +1 -0
- data/lib/dial/constants.rb +1 -0
- data/lib/dial/engine/routes.rb +1 -1
- data/lib/dial/middleware/panel.rb +1 -1
- data/lib/dial/middleware.rb +2 -1
- data/lib/dial/prosopite.rb +2 -0
- data/lib/dial/railtie.rb +9 -19
- data/lib/dial/version.rb +1 -1
- data/lib/dial.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cf2ace9f735e0ffd4c290b742bbf7f89f322babb96636e942fe1faaf92a8e45
|
4
|
+
data.tar.gz: '06279e4a580959080df277abe1a8488bca20f50276d9221ca399366f570e1426'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bde524497181a25dbeddc54f8f04ff128714844a5f2b6d8c84ae569bf4d45cb39942dddbe0d687e63c7b3c23f590410128de4abfffa69e5ee41923be4a73b6c1
|
7
|
+
data.tar.gz: e2bd5aef0ee0975a8e9c227a77296f40811d558251035771177c11f2128b599d905644186237280b3718f64ff65b31b834e01cfd222e5baba0077a53ee631451
|
data/CHANGELOG.md
CHANGED
data/lib/dial/configuration.rb
CHANGED
data/lib/dial/constants.rb
CHANGED
@@ -21,6 +21,7 @@ module Dial
|
|
21
21
|
VERNIER_INTERVAL = 200
|
22
22
|
VERNIER_ALLOCATION_INTERVAL = 2_000
|
23
23
|
VERNIER_PROFILE_OUT_RELATIVE_DIRNAME = "tmp/dial/profiles"
|
24
|
+
VERNIER_PROFILE_OUT_FILE_EXTENSION = ".json.gz"
|
24
25
|
VERNIER_VIEWER_URL = "https://vernier.prof"
|
25
26
|
|
26
27
|
PROSOPITE_IGNORE_QUERIES = [/schema_migrations/i].freeze
|
data/lib/dial/engine/routes.rb
CHANGED
@@ -4,7 +4,7 @@ Dial::Engine.routes.draw do
|
|
4
4
|
scope path: "/dial", as: "dial" do
|
5
5
|
get "profile", to: lambda { |env|
|
6
6
|
uuid = env[::Rack::QUERY_STRING].sub "uuid=", ""
|
7
|
-
path = String ::Rails.root.join Dial::VERNIER_PROFILE_OUT_RELATIVE_DIRNAME,
|
7
|
+
path = String ::Rails.root.join Dial::VERNIER_PROFILE_OUT_RELATIVE_DIRNAME, (uuid + VERNIER_PROFILE_OUT_FILE_EXTENSION)
|
8
8
|
|
9
9
|
if File.exist? path
|
10
10
|
[
|
@@ -192,7 +192,7 @@ module Dial
|
|
192
192
|
def formatted_profile_output env, profile_out_filename
|
193
193
|
url_base = ::Rails.application.routes.url_helpers.dial_url host: env[::Rack::HTTP_HOST]
|
194
194
|
prefix = "/" unless url_base.end_with? "/"
|
195
|
-
uuid = profile_out_filename.delete_suffix
|
195
|
+
uuid = profile_out_filename.delete_suffix VERNIER_PROFILE_OUT_FILE_EXTENSION
|
196
196
|
profile_out_url = URI.encode_www_form_component url_base + "#{prefix}dial/profile?uuid=#{uuid}"
|
197
197
|
|
198
198
|
"<a href='https://vernier.prof/from-url/#{profile_out_url}' target='_blank'>View profile</a>"
|
data/lib/dial/middleware.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require "vernier"
|
4
4
|
require "prosopite"
|
5
5
|
|
6
|
+
require_relative "prosopite"
|
6
7
|
require_relative "middleware/panel"
|
7
8
|
require_relative "middleware/ruby_stat"
|
8
9
|
require_relative "middleware/rails_stat"
|
@@ -23,7 +24,7 @@ module Dial
|
|
23
24
|
|
24
25
|
start_time = Process.clock_gettime Process::CLOCK_MONOTONIC
|
25
26
|
|
26
|
-
profile_out_filename = "#{Util.uuid}_vernier
|
27
|
+
profile_out_filename = "#{Util.uuid}_vernier" + VERNIER_PROFILE_OUT_FILE_EXTENSION
|
27
28
|
profile_out_pathname = "#{profile_out_dir_pathname}/#{profile_out_filename}"
|
28
29
|
|
29
30
|
status, headers, rack_body, ruby_vm_stat, gc_stat, gc_stat_heap, vernier_result = nil
|
data/lib/dial/prosopite.rb
CHANGED
data/lib/dial/railtie.rb
CHANGED
@@ -4,42 +4,32 @@ require "rails"
|
|
4
4
|
require "active_record"
|
5
5
|
require "prosopite"
|
6
6
|
|
7
|
-
require_relative "prosopite"
|
8
7
|
require_relative "middleware"
|
9
8
|
require_relative "prosopite_logger"
|
10
9
|
|
11
10
|
module Dial
|
12
11
|
class Railtie < ::Rails::Railtie
|
13
|
-
initializer "dial.
|
12
|
+
initializer "dial.setup", after: :load_config_initializers do |app|
|
13
|
+
# use middleware
|
14
14
|
app.middleware.insert_before 0, Middleware
|
15
|
-
end
|
16
|
-
|
17
|
-
initializer "dial.set_up_vernier", after: :load_config_initializers do |app|
|
18
|
-
app.config.after_initialize do
|
19
|
-
FileUtils.mkdir_p ::Rails.root.join VERNIER_PROFILE_OUT_RELATIVE_DIRNAME
|
20
|
-
end
|
21
|
-
end
|
22
15
|
|
23
|
-
|
24
|
-
stale_files("#{profile_out_dir_pathname}
|
16
|
+
# clean up stale vernier profile output files
|
17
|
+
stale_files("#{profile_out_dir_pathname}/*" + VERNIER_PROFILE_OUT_FILE_EXTENSION).each do |profile_out_file|
|
25
18
|
File.delete profile_out_file rescue nil
|
26
19
|
end
|
27
|
-
end
|
28
20
|
|
29
|
-
initializer "dial.set_up_prosopite", after: :load_config_initializers do |app|
|
30
21
|
app.config.after_initialize do
|
22
|
+
# set up vernier
|
23
|
+
FileUtils.mkdir_p ::Rails.root.join VERNIER_PROFILE_OUT_RELATIVE_DIRNAME
|
24
|
+
|
25
|
+
# set up prosopite
|
31
26
|
if ::ActiveRecord::Base.configurations.configurations.any? { |config| config.adapter == "postgresql" }
|
32
27
|
require "pg_query"
|
33
28
|
end
|
34
|
-
|
35
29
|
::Prosopite.custom_logger = ProsopiteLogger.new PROSOPITE_LOG_IO
|
36
|
-
end
|
37
|
-
end
|
38
30
|
|
39
|
-
|
40
|
-
app.config.after_initialize do
|
31
|
+
# finalize configuration
|
41
32
|
Dial._configuration.freeze
|
42
|
-
|
43
33
|
::Prosopite.ignore_queries = Dial._configuration.prosopite_ignore_queries
|
44
34
|
end
|
45
35
|
end
|
data/lib/dial/version.rb
CHANGED
data/lib/dial.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dial
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Young
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
requirements: []
|
141
|
-
rubygems_version: 3.6.
|
141
|
+
rubygems_version: 3.6.9
|
142
142
|
specification_version: 4
|
143
143
|
summary: A modern profiler for your Rails application
|
144
144
|
test_files: []
|