callstacking-rails 0.1.11 → 0.1.14
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/exe/callstacking-rails +1 -1
- data/lib/callstacking/rails/engine.rb +1 -1
- data/lib/callstacking/rails/instrument.rb +39 -12
- data/lib/callstacking/rails/settings.rb +1 -0
- data/lib/callstacking/rails/setup.rb +17 -11
- data/lib/callstacking/rails/trace.rb +11 -9
- data/lib/callstacking/rails/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d44334293141ed52816f662a764b60a880c6a8942ad0803dc365b5eaa7bcec6
|
4
|
+
data.tar.gz: 979b68d010c25055b21ba482165a64b850f6b9eefb1cdb1445192cd6e1afbc70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 997f19b2eda526ea52667967af3712605a3e7caf6daa1ceb40957e905d68dcad62cdfac50f02094838bd75b5108f1788d166600d997796d4de61cb4dcd0107fb
|
7
|
+
data.tar.gz: 45095a4346af6d99208e0e089f492d29d9d21196a13ef63570ad2d7403c6dd1ea3db2412db99aa8d3d0a0009144f0873cb9312ac092e6969afa49dcf4104d1ea
|
data/exe/callstacking-rails
CHANGED
@@ -17,7 +17,7 @@ read_settings
|
|
17
17
|
|
18
18
|
case action
|
19
19
|
when 'register'
|
20
|
-
`open #{settings
|
20
|
+
`open #{settings[:url] || Callstacking::Rails::Settings::PRODUCTION_URL}/users/sign_up`
|
21
21
|
|
22
22
|
when 'setup'
|
23
23
|
Callstacking::Rails::Setup.new.start
|
@@ -28,25 +28,52 @@ module Callstacking
|
|
28
28
|
tmp_module.instance_methods.include?(method_name) ||
|
29
29
|
tmp_module.singleton_methods.include?(method_name)
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
new_method = nil
|
32
|
+
if RUBY_VERSION < "2.7.8"
|
33
|
+
new_method = tmp_module.define_method(method_name) do |*args, &block|
|
34
|
+
method_name = __method__
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
+
path = method(__method__).super_method.source_location.first
|
37
|
+
line_no = method(__method__).super_method.source_location.last
|
36
38
|
|
37
|
-
|
39
|
+
p, l = caller.find { |c| c.to_s =~ /#{::Rails.root.to_s}/}&.split(':')
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
+
spans = tmp_module.instance_variable_get(:@spans)
|
42
|
+
klass = tmp_module.instance_variable_get(:@klass)
|
41
43
|
|
42
|
-
|
44
|
+
arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
|
47
|
+
return_val = super(*args, &block)
|
48
|
+
spans.call_return(klass, method_name, p || path, l || line_no, return_val)
|
49
|
+
|
50
|
+
return_val
|
51
|
+
end
|
52
|
+
new_method.ruby2_keywords if new_method.respond_to?(:ruby2_keywords)
|
53
|
+
else
|
54
|
+
new_method = tmp_module.define_method(method_name) do |*args, **kwargs, &block|
|
55
|
+
method_name = __method__
|
56
|
+
|
57
|
+
path = method(__method__).super_method.source_location.first
|
58
|
+
line_no = method(__method__).super_method.source_location.last
|
59
|
+
|
60
|
+
p, l = caller.find { |c| c.to_s =~ /#{::Rails.root.to_s}/}&.split(':')
|
61
|
+
|
62
|
+
spans = tmp_module.instance_variable_get(:@spans)
|
63
|
+
klass = tmp_module.instance_variable_get(:@klass)
|
64
|
+
|
65
|
+
arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
|
66
|
+
|
67
|
+
spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
|
68
|
+
return_val = super(*args, **kwargs, &block)
|
69
|
+
spans.call_return(klass, method_name, p || path, l || line_no, return_val)
|
70
|
+
|
71
|
+
return_val
|
72
|
+
end
|
47
73
|
|
48
|
-
return_val
|
49
74
|
end
|
75
|
+
|
76
|
+
new_method
|
50
77
|
end
|
51
78
|
|
52
79
|
def find_or_initialize_module
|
@@ -2,6 +2,7 @@ require 'yaml'
|
|
2
2
|
require "callstacking/rails/settings"
|
3
3
|
require "callstacking/rails/client/authenticate"
|
4
4
|
require "callstacking/rails/env"
|
5
|
+
require 'io/console'
|
5
6
|
|
6
7
|
module Callstacking
|
7
8
|
module Rails
|
@@ -24,7 +25,7 @@ module Callstacking
|
|
24
25
|
puts
|
25
26
|
|
26
27
|
email = prompt("Enter email:")
|
27
|
-
password = prompt("Enter password:")
|
28
|
+
password = prompt("Enter password:", echo: false)
|
28
29
|
|
29
30
|
url = if Callstacking::Rails::Env.production? && ENV['CHECKPOINT_RAILS_LOCAL_TEST'].nil?
|
30
31
|
PRODUCTION_URL
|
@@ -50,9 +51,14 @@ module Callstacking
|
|
50
51
|
write_settings(complete_settings.merge(props))
|
51
52
|
end
|
52
53
|
|
53
|
-
def prompt(label)
|
54
|
+
def prompt(label, echo: true)
|
54
55
|
puts label
|
55
|
-
|
56
|
+
|
57
|
+
value = if echo
|
58
|
+
STDIN.gets.chomp
|
59
|
+
else
|
60
|
+
STDIN.noecho(&:gets).chomp
|
61
|
+
end
|
56
62
|
puts
|
57
63
|
|
58
64
|
return nil if value == ''
|
@@ -88,14 +94,6 @@ module Callstacking
|
|
88
94
|
puts
|
89
95
|
puts "Usage: "
|
90
96
|
puts
|
91
|
-
puts " > callstacking-rails enable"
|
92
|
-
puts
|
93
|
-
puts " Enables the callstacking tracing."
|
94
|
-
puts
|
95
|
-
puts " > callstacking-rails disable"
|
96
|
-
puts
|
97
|
-
puts " Disables the callstacking tracing."
|
98
|
-
puts
|
99
97
|
puts " > callstacking-rails register"
|
100
98
|
puts
|
101
99
|
puts " Opens a browser window to register as a callstacking.com user."
|
@@ -105,6 +103,14 @@ module Callstacking
|
|
105
103
|
puts " Interactively prompts you for your callstacking.com username/password."
|
106
104
|
puts " Stores auth details in #{SETTINGS_FILE}"
|
107
105
|
puts
|
106
|
+
puts " > callstacking-rails enable"
|
107
|
+
puts
|
108
|
+
puts " Enables the callstacking tracing."
|
109
|
+
puts
|
110
|
+
puts " > callstacking-rails disable"
|
111
|
+
puts
|
112
|
+
puts " Disables the callstacking tracing."
|
113
|
+
puts
|
108
114
|
puts " You can have multiple environments."
|
109
115
|
puts " The default is #{Callstacking::Rails::Env::DEFAULT_ENVIRONMENT}."
|
110
116
|
puts
|
@@ -30,7 +30,7 @@ module Callstacking
|
|
30
30
|
ActiveSupport::Notifications.subscribe("start_processing.action_controller") do |name, start, finish, id, payload|
|
31
31
|
trace_id, max_trace_entries = start_request(payload[:request]&.request_id, payload[:method], payload[:controller],
|
32
32
|
payload[:action], payload[:format], ::Rails.root,
|
33
|
-
payload[:request]&.original_url,
|
33
|
+
payload[:request]&.original_url || payload[:path],
|
34
34
|
payload[:headers], payload[:params])
|
35
35
|
end
|
36
36
|
|
@@ -45,8 +45,8 @@ module Callstacking
|
|
45
45
|
ActiveSupport::Notifications.subscribe("process_action.action_controller") do |name, start, finish, id, payload|
|
46
46
|
complete_request(payload[:method], payload[:controller],
|
47
47
|
payload[:action], payload[:format],
|
48
|
-
payload[:request]&.original_url,
|
49
|
-
trace_id, max_trace_entries)
|
48
|
+
payload[:request]&.original_url || payload[:path],
|
49
|
+
trace_id, @traces, max_trace_entries)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -123,7 +123,7 @@ module Callstacking
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
def start_request(request_id, method, controller, action, format, path, original_url, headers, params)
|
126
|
-
return if do_not_track_request?(original_url)
|
126
|
+
return if do_not_track_request?(original_url, format)
|
127
127
|
|
128
128
|
request_id = request_id || SecureRandom.uuid
|
129
129
|
Callstacking::Rails::Trace.current_request_id = request_id
|
@@ -140,23 +140,25 @@ module Callstacking
|
|
140
140
|
return trace_id, max_trace_entries
|
141
141
|
end
|
142
142
|
|
143
|
-
def complete_request(method, controller, action, format, original_url, trace_id, max_trace_entries)
|
144
|
-
if do_not_track_request?(original_url)
|
143
|
+
def complete_request(method, controller, action, format, original_url, trace_id, traces, max_trace_entries)
|
144
|
+
if do_not_track_request?(original_url, format)
|
145
145
|
traces.clear
|
146
146
|
return
|
147
147
|
end
|
148
148
|
|
149
149
|
create_message(completed_request_message(method, controller, action, format),
|
150
|
-
spans.increment_order_num,
|
150
|
+
spans.increment_order_num, traces)
|
151
151
|
|
152
|
-
send_traces!(trace_id,
|
152
|
+
send_traces!(trace_id, traces[0..max_trace_entries])
|
153
153
|
end
|
154
154
|
|
155
155
|
def track_request?(url)
|
156
156
|
!(track_request?(url))
|
157
157
|
end
|
158
158
|
|
159
|
-
def do_not_track_request?(url)
|
159
|
+
def do_not_track_request?(url, format)
|
160
|
+
return false if format =~ /(html|json)/i
|
161
|
+
|
160
162
|
url =~ /(\/stylesheets\/|\/javascripts\/|\/css\/|\/js\/|\.js|\.css)/i
|
161
163
|
end
|
162
164
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: callstacking-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Jones
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.10.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.10.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday-follow_redirects
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|