callstacking-rails 0.1.9 → 0.1.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f67350370703c3ea1b201b22a4c2b15a5c5aaaedd4eab966a1889a0304385be
4
- data.tar.gz: 6a52911f3d66c1304b12ea7c64431cd0d30130467e037012a03af5969148a923
3
+ metadata.gz: 0c21978f17a516a2b6939fc4651bc1bd53ecec1ab12cee52f6c1fb20be5cca42
4
+ data.tar.gz: 92f446f93cd97b89124d02886a0f4816627204231bc4500428b9416829b06f23
5
5
  SHA512:
6
- metadata.gz: 1ad22901a06353e8e2ec5bbb9640dca50b64b0f6076836f2adac28a72b12ab7c94d972d02d1b88a503d8e9b258ffa70c5df6566f8ecdc4e81631f34160432095
7
- data.tar.gz: bf99ed23d5f2bed6228c7f39bc80db8201f5abb2990ef3f1b0c32774a25c072ef1b3a9baaa32406d771afcb6888b0bb15d778af4be4cee0ae279419452c31322
6
+ metadata.gz: 3b22c2b9aa191a601dc324488ae02f89759a048c5289d14438db9e99fd69f81e938eb48a24eeffb6605db4ab7b47e0eb62c061829fedf1cbd59e0ee15e00ecf0
7
+ data.tar.gz: 1114ce3c87cce5353081f21d14683758a676844d3c1f05a1cea9c53df69e1e471e3ab18778ec5473fcfaeb03a981aed4ba1848b7211707b0a12da35ee6788c7b
@@ -20,6 +20,8 @@ module Callstacking
20
20
  # Application level method definitions
21
21
  return unless method_path =~ root if application_level
22
22
 
23
+ return if method_path =~ /initializer/i
24
+
23
25
  tmp_module = find_or_initialize_module
24
26
 
25
27
  return if tmp_module.nil? ||
@@ -29,8 +29,9 @@ module Callstacking
29
29
 
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
- payload[:action], payload[:format], ::Rails.root,
33
- payload[:original_url], payload[:headers], payload[:params])
32
+ payload[:action], payload[:format], ::Rails.root,
33
+ payload[:request]&.original_url,
34
+ payload[:headers], payload[:params])
34
35
  end
35
36
 
36
37
  @spans.on_call_entry do |nesting_level, order_num, klass, method_name, arguments, path, line_no|
@@ -44,6 +45,7 @@ module Callstacking
44
45
  ActiveSupport::Notifications.subscribe("process_action.action_controller") do |name, start, finish, id, payload|
45
46
  complete_request(payload[:method], payload[:controller],
46
47
  payload[:action], payload[:format],
48
+ payload[:request]&.original_url,
47
49
  trace_id, max_trace_entries)
48
50
  end
49
51
  end
@@ -60,44 +62,55 @@ module Callstacking
60
62
 
61
63
  def create_call_return(coupled_callee, nesting_level, order_num, klass, method_name, path, line_no, return_val, traces)
62
64
  lock.synchronize do
63
- traces << { trace_entry: { trace_entryable_type: 'TraceCallReturn',
64
- order_num: order_num,
65
- nesting_level: nesting_level,
66
- trace_entryable_attributes: {
67
- local_variables: {},
68
- klass: klass_name(klass),
69
- line_number: line_no,
70
- path: path,
71
- method_name: method_name,
72
- return_value: return_value(return_val),
73
- coupled_callee: coupled_callee,
74
- } } }
65
+ traces << { type: 'TraceCallReturn',
66
+ order_num: order_num,
67
+ nesting_level: nesting_level,
68
+ local_variables: {},
69
+ args: {},
70
+ klass: klass_name(klass),
71
+ line_number: line_no,
72
+ path: path,
73
+ method_name: method_name,
74
+ return_value: return_value(return_val),
75
+ coupled_callee: coupled_callee,
76
+ message: nil,
77
+ }
75
78
  end
76
79
  end
77
80
 
78
81
  def create_call_entry(nesting_level, order_num, klass, method_name, arguments, path, line_no, traces)
79
82
  lock.synchronize do
80
- traces << { trace_entry: { trace_entryable_type: 'TraceCallEntry',
81
- order_num: order_num,
82
- nesting_level: nesting_level,
83
- trace_entryable_attributes: {
84
- args: arguments,
85
- klass: klass_name(klass),
86
- line_number: line_no,
87
- path: path,
88
- method_name: method_name,
89
- } } }
83
+ traces << { type: 'TraceCallEntry',
84
+ order_num: order_num,
85
+ nesting_level: nesting_level,
86
+ args: arguments,
87
+ klass: klass_name(klass),
88
+ line_number: line_no,
89
+ path: path,
90
+ method_name: method_name,
91
+ return_value: nil,
92
+ coupled_callee: nil,
93
+ local_variables: {},
94
+ message: nil,
95
+ }
90
96
  end
91
97
  end
92
98
 
93
99
  def create_message(message, order_num, traces)
94
100
  lock.synchronize do
95
- traces << { trace_entry: { trace_entryable_type: 'TraceMessage',
96
- order_num: order_num,
97
- nesting_level: 0,
98
- trace_entryable_attributes: {
99
- message: message
100
- } } }
101
+ traces << { type: 'TraceMessage',
102
+ order_num: order_num,
103
+ nesting_level: 0,
104
+ message: message,
105
+ args: {},
106
+ klass: nil,
107
+ line_number: nil,
108
+ path: nil,
109
+ method_name: nil,
110
+ return_value: nil,
111
+ coupled_callee: false,
112
+ local_variables: {},
113
+ }
101
114
  end
102
115
  end
103
116
 
@@ -105,11 +118,13 @@ module Callstacking
105
118
  lock.synchronize do
106
119
  return if traces.empty?
107
120
 
108
- client.upsert(trace_id, { traces: traces })
121
+ client.upsert(trace_id, { trace_entries: traces })
109
122
  traces.clear
110
123
  end
111
124
  end
112
125
  def start_request(request_id, method, controller, action, format, path, original_url, headers, params)
126
+ return if do_not_track_request?(original_url)
127
+
113
128
  request_id = request_id || SecureRandom.uuid
114
129
  Callstacking::Rails::Trace.current_request_id = request_id
115
130
 
@@ -125,12 +140,26 @@ module Callstacking
125
140
  return trace_id, max_trace_entries
126
141
  end
127
142
 
128
- def complete_request(method, controller, action, format, trace_id, max_trace_entries)
143
+ def complete_request(method, controller, action, format, original_url, trace_id, max_trace_entries)
144
+ if do_not_track_request?(original_url)
145
+ traces.clear
146
+ return
147
+ end
148
+
129
149
  create_message(completed_request_message(method, controller, action, format),
130
150
  spans.increment_order_num, @traces)
151
+
131
152
  send_traces!(trace_id, @traces[0..max_trace_entries])
132
153
  end
133
154
 
155
+ def track_request?(url)
156
+ !(track_request?(url))
157
+ end
158
+
159
+ def do_not_track_request?(url)
160
+ url =~ /(\/stylesheets\/|\/javascripts\/|\/css\/|\/js\/|\.js|\.css)/i
161
+ end
162
+
134
163
  def return_value(return_val)
135
164
  return_val.inspect
136
165
  rescue ThreadError
@@ -1,5 +1,5 @@
1
1
  module Callstacking
2
2
  module Rails
3
- VERSION = "0.1.9"
3
+ VERSION = "0.1.11"
4
4
  end
5
5
  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.9
4
+ version: 0.1.11
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-19 00:00:00.000000000 Z
11
+ date: 2023-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails