callstacking-rails 0.1.6 → 0.1.8
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/env.rb +1 -1
- data/lib/callstacking/rails/instrument.rb +2 -2
- data/lib/callstacking/rails/setup.rb +3 -0
- data/lib/callstacking/rails/trace.rb +29 -20
- data/lib/callstacking/rails/traces_helper.rb +1 -0
- data/lib/callstacking/rails/version.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: ba4839162aee95292d54812c4c9f86be937f9ff13a5765197c34a371c21940a7
|
4
|
+
data.tar.gz: 56518b971c4fac333b0c2c5e645bdc92c580ff426fb62f4f72460bc2e3a95cd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 276072fc8c408926760d2cae1949ec24ce0ebcd0b4afda094a0132761db1b127dfae00900e9c50de1a0a1af697068effe1b84b922336a2de9f25a15db5753785
|
7
|
+
data.tar.gz: 53ab41b4aae0ce86466561a3381746b8853697f7927398e938604e95e4e17297ebbce6958e3e7f4be965a79c9ad488a89c7f18e21482511d2350d399a0394a9a
|
@@ -26,7 +26,7 @@ module Callstacking
|
|
26
26
|
tmp_module.instance_methods.include?(method_name) ||
|
27
27
|
tmp_module.singleton_methods.include?(method_name)
|
28
28
|
|
29
|
-
tmp_module.define_method(method_name) do |*args, &block|
|
29
|
+
tmp_module.define_method(method_name) do |*args, **kwargs, &block|
|
30
30
|
method_name = __method__
|
31
31
|
|
32
32
|
path = method(__method__).super_method.source_location.first
|
@@ -40,7 +40,7 @@ module Callstacking
|
|
40
40
|
arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
|
41
41
|
|
42
42
|
spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
|
43
|
-
return_val = super(*args, &block)
|
43
|
+
return_val = super(*args, **kwargs, &block)
|
44
44
|
spans.call_return(klass, method_name, p || path, l || line_no, return_val)
|
45
45
|
|
46
46
|
return_val
|
@@ -27,18 +27,9 @@ module Callstacking
|
|
27
27
|
trace_id = nil
|
28
28
|
|
29
29
|
ActiveSupport::Notifications.subscribe("start_processing.action_controller") do |name, start, finish, id, payload|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
trace_id, _interval = client.create(payload[:method], payload[:controller],
|
34
|
-
payload[:action], payload[:format],
|
35
|
-
::Rails.root, payload[:request]&.original_url,
|
36
|
-
request_id, payload[:headers],
|
37
|
-
payload[:params])
|
38
|
-
|
39
|
-
puts "#{settings[:url] || Callstacking::Rails::Settings::PRODUCTION_URL}/traces/#{trace_id}"
|
40
|
-
|
41
|
-
create_message(start_request_message(payload), spans.increment_order_num, @traces)
|
30
|
+
trace_id = start_request(payload[:request]&.request_id, payload[:method], payload[:controller],
|
31
|
+
payload[:action], payload[:format], ::Rails.root,
|
32
|
+
payload[:original_url], payload[:headers], payload[:params])
|
42
33
|
end
|
43
34
|
|
44
35
|
@spans.on_call_entry do |nesting_level, order_num, klass, method_name, arguments, path, line_no|
|
@@ -50,19 +41,18 @@ module Callstacking
|
|
50
41
|
end
|
51
42
|
|
52
43
|
ActiveSupport::Notifications.subscribe("process_action.action_controller") do |name, start, finish, id, payload|
|
53
|
-
|
54
|
-
send_traces!(trace_id, @traces)
|
44
|
+
complete_request(payload[:method], payload[:controller], payload[:action], payload[:format], trace_id)
|
55
45
|
end
|
56
46
|
end
|
57
47
|
|
58
48
|
private
|
59
49
|
|
60
|
-
def completed_request_message(
|
61
|
-
"Completed request: #{
|
50
|
+
def completed_request_message(method, controller, action, format)
|
51
|
+
"Completed request: #{method} #{controller}##{action} as #{format}"
|
62
52
|
end
|
63
53
|
|
64
|
-
def start_request_message(
|
65
|
-
"Started request: #{
|
54
|
+
def start_request_message(method, controller, action, format)
|
55
|
+
"Started request: #{method} #{controller}##{action} as #{format}"
|
66
56
|
end
|
67
57
|
|
68
58
|
def create_call_return(coupled_callee, nesting_level, order_num, klass, method_name, path, line_no, return_val, traces)
|
@@ -81,7 +71,6 @@ module Callstacking
|
|
81
71
|
} } }
|
82
72
|
end
|
83
73
|
end
|
84
|
-
|
85
74
|
def create_call_entry(nesting_level, order_num, klass, method_name, arguments, path, line_no, traces)
|
86
75
|
lock.synchronize do
|
87
76
|
traces << { trace_entry: { trace_entryable_type: 'TraceCallEntry',
|
@@ -116,8 +105,28 @@ module Callstacking
|
|
116
105
|
traces.clear
|
117
106
|
end
|
118
107
|
end
|
108
|
+
def start_request(request_id, method, controller, action, format, path, original_url, headers, params)
|
109
|
+
request_id = request_id || SecureRandom.uuid
|
110
|
+
Callstacking::Rails::Trace.current_request_id = request_id
|
111
|
+
|
112
|
+
trace_id, _interval = client.create(method, controller, action, format,
|
113
|
+
path, original_url, request_id, headers,
|
114
|
+
params)
|
115
|
+
|
116
|
+
puts "#{settings[:url] || Callstacking::Rails::Settings::PRODUCTION_URL}/traces/#{trace_id}"
|
117
|
+
|
118
|
+
create_message(start_request_message(method, controller, action, format),
|
119
|
+
spans.increment_order_num, @traces)
|
120
|
+
|
121
|
+
trace_id
|
122
|
+
end
|
123
|
+
|
124
|
+
def complete_request(method, controller, action, format, trace_id)
|
125
|
+
create_message(completed_request_message(method, controller, action, format),
|
126
|
+
spans.increment_order_num, @traces)
|
127
|
+
send_traces!(trace_id, @traces)
|
128
|
+
end
|
119
129
|
|
120
|
-
private
|
121
130
|
def klass_name(klass)
|
122
131
|
(klass.is_a?(Class) ? klass.name : klass.class.name)
|
123
132
|
end
|
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.8
|
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-01-
|
11
|
+
date: 2023-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|