callstacking-rails 0.1.12 → 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/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 +9 -3
- 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
|
@@ -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 == ''
|
@@ -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: 1.10.
|
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: 1.10.
|
40
|
+
version: 1.10.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday-follow_redirects
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|