traceview 3.3.3 → 3.4.0
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/.travis.yml +18 -18
- data/CHANGELOG.md +13 -0
- data/README.md +3 -1
- data/Rakefile +18 -9
- data/gemfiles/delayed_job.gemfile +38 -0
- data/gemfiles/frameworks.gemfile +1 -2
- data/gemfiles/libraries.gemfile +1 -2
- data/gemfiles/rails23.gemfile +1 -2
- data/gemfiles/rails30.gemfile +4 -2
- data/gemfiles/rails31.gemfile +4 -2
- data/gemfiles/rails32.gemfile +4 -2
- data/gemfiles/rails40.gemfile +4 -2
- data/gemfiles/rails41.gemfile +4 -2
- data/gemfiles/rails42.gemfile +4 -2
- data/lib/traceview/api/layerinit.rb +3 -5
- data/lib/traceview/api/logging.rb +63 -50
- data/lib/traceview/api/memcache.rb +10 -9
- data/lib/traceview/api/profiling.rb +6 -7
- data/lib/traceview/api/util.rb +1 -1
- data/lib/traceview/base.rb +21 -7
- data/lib/traceview/config.rb +8 -4
- data/lib/traceview/frameworks/padrino.rb +2 -2
- data/lib/traceview/frameworks/rails.rb +26 -32
- data/lib/traceview/frameworks/rails/inst/action_controller.rb +3 -3
- data/lib/traceview/frameworks/rails/inst/action_view.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_30.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +3 -3
- data/lib/traceview/frameworks/sinatra.rb +1 -1
- data/lib/traceview/frameworks/sinatra/templates.rb +1 -1
- data/lib/traceview/inst/dalli.rb +4 -5
- data/lib/traceview/inst/delayed_job.rb +92 -0
- data/lib/traceview/inst/em-http-request.rb +3 -0
- data/lib/traceview/inst/excon.rb +3 -3
- data/lib/traceview/inst/faraday.rb +4 -1
- data/lib/traceview/inst/mongo.rb +10 -5
- data/lib/traceview/inst/moped.rb +4 -4
- data/lib/traceview/inst/redis.rb +5 -7
- data/lib/traceview/inst/resque.rb +3 -3
- data/lib/traceview/inst/rest-client.rb +2 -2
- data/lib/traceview/inst/sidekiq-client.rb +3 -0
- data/lib/traceview/inst/sidekiq-worker.rb +3 -0
- data/lib/traceview/inst/twitter-cassandra.rb +8 -4
- data/lib/traceview/test.rb +30 -1
- data/lib/traceview/util.rb +7 -0
- data/lib/traceview/version.rb +2 -2
- data/test/frameworks/rails3x_test.rb +12 -2
- data/test/frameworks/rails4x_test.rb +12 -2
- data/test/instrumentation/curb_test.rb +2 -2
- data/test/instrumentation/dalli_test.rb +121 -118
- data/test/instrumentation/httpclient_test.rb +0 -1
- data/test/jobs/delayed_job/db_worker_job.rb +29 -0
- data/test/jobs/delayed_job/error_worker_job.rb +10 -0
- data/test/jobs/delayed_job/remote_call_worker_job.rb +20 -0
- data/test/minitest_helper.rb +8 -3
- data/test/models/widget.rb +19 -0
- data/test/queues/delayed_job-client_test.rb +95 -0
- data/test/queues/delayed_job-worker_test.rb +91 -0
- data/test/servers/delayed_job.rb +102 -0
- data/test/servers/rails3x_8140.rb +17 -1
- data/test/servers/rails4x_8140.rb +18 -1
- data/test/support/auto_tracing.rb +40 -0
- data/test/support/config_test.rb +5 -1
- data/traceview.gemspec +1 -0
- metadata +34 -6
- data/test/instrumentation/delayed_job-client_test.rb +0 -128
- data/test/instrumentation/delayed_job-worker_test.rb +0 -177
data/traceview.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.extensions = ['ext/oboe_metal/extconf.rb'] unless defined?(JRUBY_VERSION)
|
23
23
|
|
24
24
|
s.add_runtime_dependency('json', '>= 0')
|
25
|
+
s.add_runtime_dependency('bson', '< 4.0')
|
25
26
|
s.add_development_dependency('rake', '>= 0')
|
26
27
|
|
27
28
|
s.required_ruby_version = '>= 1.8.6'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traceview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Giacomo Lombardo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bson
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '4.0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "<"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '4.0'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: rake
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,6 +87,7 @@ files:
|
|
73
87
|
- ext/oboe_metal/src/oboe.hpp
|
74
88
|
- ext/oboe_metal/src/oboe_wrap.cxx
|
75
89
|
- ext/oboe_metal/tests/test.rb
|
90
|
+
- gemfiles/delayed_job.gemfile
|
76
91
|
- gemfiles/frameworks.gemfile
|
77
92
|
- gemfiles/libraries.gemfile
|
78
93
|
- gemfiles/rails23.gemfile
|
@@ -123,6 +138,7 @@ files:
|
|
123
138
|
- lib/traceview/frameworks/sinatra/templates.rb
|
124
139
|
- lib/traceview/inst/curb.rb
|
125
140
|
- lib/traceview/inst/dalli.rb
|
141
|
+
- lib/traceview/inst/delayed_job.rb
|
126
142
|
- lib/traceview/inst/em-http-request.rb
|
127
143
|
- lib/traceview/inst/excon.rb
|
128
144
|
- lib/traceview/inst/faraday.rb
|
@@ -165,8 +181,6 @@ files:
|
|
165
181
|
- test/instrumentation/cassandra_test.rb
|
166
182
|
- test/instrumentation/curb_test.rb
|
167
183
|
- test/instrumentation/dalli_test.rb
|
168
|
-
- test/instrumentation/delayed_job-client_test.rb
|
169
|
-
- test/instrumentation/delayed_job-worker_test.rb
|
170
184
|
- test/instrumentation/em_http_request_test.rb
|
171
185
|
- test/instrumentation/excon_test.rb
|
172
186
|
- test/instrumentation/faraday_test.rb
|
@@ -192,6 +206,9 @@ files:
|
|
192
206
|
- test/instrumentation/sidekiq-client_test.rb
|
193
207
|
- test/instrumentation/sidekiq-worker_test.rb
|
194
208
|
- test/instrumentation/typhoeus_test.rb
|
209
|
+
- test/jobs/delayed_job/db_worker_job.rb
|
210
|
+
- test/jobs/delayed_job/error_worker_job.rb
|
211
|
+
- test/jobs/delayed_job/remote_call_worker_job.rb
|
195
212
|
- test/jobs/resque/db_worker_job.rb
|
196
213
|
- test/jobs/resque/error_worker_job.rb
|
197
214
|
- test/jobs/resque/remote_call_worker_job.rb
|
@@ -199,15 +216,20 @@ files:
|
|
199
216
|
- test/jobs/sidekiq/error_worker_job.rb
|
200
217
|
- test/jobs/sidekiq/remote_call_worker_job.rb
|
201
218
|
- test/minitest_helper.rb
|
219
|
+
- test/models/widget.rb
|
202
220
|
- test/profiling/legacy_method_profiling_test.rb
|
203
221
|
- test/profiling/method_profiling_test.rb
|
222
|
+
- test/queues/delayed_job-client_test.rb
|
223
|
+
- test/queues/delayed_job-worker_test.rb
|
204
224
|
- test/reporter/reporter_test.rb
|
225
|
+
- test/servers/delayed_job.rb
|
205
226
|
- test/servers/rackapp_8101.rb
|
206
227
|
- test/servers/rails3x_8140.rb
|
207
228
|
- test/servers/rails4x_8140.rb
|
208
229
|
- test/servers/sidekiq.rb
|
209
230
|
- test/servers/sidekiq.yml
|
210
231
|
- test/servers/sidekiq_initializer.rb
|
232
|
+
- test/support/auto_tracing.rb
|
211
233
|
- test/support/backcompat_test.rb
|
212
234
|
- test/support/config_test.rb
|
213
235
|
- test/support/dnt_test.rb
|
@@ -245,11 +267,11 @@ test_files:
|
|
245
267
|
- test/servers/sidekiq_initializer.rb
|
246
268
|
- test/servers/rails4x_8140.rb
|
247
269
|
- test/servers/rails3x_8140.rb
|
270
|
+
- test/servers/delayed_job.rb
|
248
271
|
- test/servers/sidekiq.rb
|
249
272
|
- test/servers/rackapp_8101.rb
|
250
273
|
- test/instrumentation/excon_test.rb
|
251
274
|
- test/instrumentation/sequel_pg_test.rb
|
252
|
-
- test/instrumentation/delayed_job-worker_test.rb
|
253
275
|
- test/instrumentation/moped_test.rb
|
254
276
|
- test/instrumentation/httpclient_test.rb
|
255
277
|
- test/instrumentation/sequel_mysql_test.rb
|
@@ -261,7 +283,6 @@ test_files:
|
|
261
283
|
- test/instrumentation/cassandra_test.rb
|
262
284
|
- test/instrumentation/redis_strings_test.rb
|
263
285
|
- test/instrumentation/typhoeus_test.rb
|
264
|
-
- test/instrumentation/delayed_job-client_test.rb
|
265
286
|
- test/instrumentation/sequel_mysql2_test.rb
|
266
287
|
- test/instrumentation/sidekiq-worker_test.rb
|
267
288
|
- test/instrumentation/redis_misc_test.rb
|
@@ -278,6 +299,7 @@ test_files:
|
|
278
299
|
- test/instrumentation/em_http_request_test.rb
|
279
300
|
- test/instrumentation/rest-client_test.rb
|
280
301
|
- test/reporter/reporter_test.rb
|
302
|
+
- test/models/widget.rb
|
281
303
|
- test/profiling/method_profiling_test.rb
|
282
304
|
- test/profiling/legacy_method_profiling_test.rb
|
283
305
|
- test/frameworks/apps/grape_simple.rb
|
@@ -289,8 +311,11 @@ test_files:
|
|
289
311
|
- test/frameworks/rails3x_test.rb
|
290
312
|
- test/frameworks/padrino_test.rb
|
291
313
|
- test/frameworks/rails4x_test.rb
|
314
|
+
- test/queues/delayed_job-worker_test.rb
|
315
|
+
- test/queues/delayed_job-client_test.rb
|
292
316
|
- test/support/config_test.rb
|
293
317
|
- test/support/noop_test.rb
|
318
|
+
- test/support/auto_tracing.rb
|
294
319
|
- test/support/dnt_test.rb
|
295
320
|
- test/support/sql_sanitize_test.rb
|
296
321
|
- test/support/tvalias_test.rb
|
@@ -304,3 +329,6 @@ test_files:
|
|
304
329
|
- test/jobs/resque/remote_call_worker_job.rb
|
305
330
|
- test/jobs/resque/error_worker_job.rb
|
306
331
|
- test/jobs/resque/db_worker_job.rb
|
332
|
+
- test/jobs/delayed_job/remote_call_worker_job.rb
|
333
|
+
- test/jobs/delayed_job/error_worker_job.rb
|
334
|
+
- test/jobs/delayed_job/db_worker_job.rb
|
@@ -1,128 +0,0 @@
|
|
1
|
-
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
-
# All rights reserved.
|
3
|
-
|
4
|
-
require 'minitest_helper'
|
5
|
-
require_relative "../jobs/delayed_job/remote_call_worker_job"
|
6
|
-
require_relative "../jobs/delayed_job/db_worker_job"
|
7
|
-
require_relative "../jobs/delayed_job/error_worker_job"
|
8
|
-
|
9
|
-
class DelayedJobClientTest < Minitest::Test
|
10
|
-
def setup
|
11
|
-
clear_all_traces
|
12
|
-
@collect_backtraces = TraceView::Config[:delayedjobclient][:collect_backtraces]
|
13
|
-
@log_args = TraceView::Config[:delayedjobclient][:log_args]
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
TraceView::Config[:delayedjobclient][:collect_backtraces] = @collect_backtraces
|
18
|
-
TraceView::Config[:delayedjobclient][:log_args] = @log_args
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_enqueue
|
22
|
-
# Queue up a job to be run
|
23
|
-
jid, _ = ::TraceView::API.start_trace(:enqueue_test) do
|
24
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Allow the job to be run
|
28
|
-
sleep 5
|
29
|
-
|
30
|
-
traces = get_all_traces
|
31
|
-
assert_equal 23, traces.count, "Trace count"
|
32
|
-
valid_edges?(traces)
|
33
|
-
|
34
|
-
assert_equal 'sidekiq-client', traces[1]['Layer']
|
35
|
-
assert_equal 'entry', traces[1]['Label']
|
36
|
-
|
37
|
-
assert_equal 'msgclient', traces[1]['Spec']
|
38
|
-
assert_equal 'sidekiq', traces[1]['Flavor']
|
39
|
-
assert_equal 'critical', traces[1]['Queue']
|
40
|
-
assert_equal jid, traces[1]['MsgID']
|
41
|
-
assert_equal '[1, 2, 3]', traces[1]['Args']
|
42
|
-
assert_equal "RemoteCallWorkerJob", traces[1]['JobName']
|
43
|
-
assert_equal 'false', traces[1]['Retry']
|
44
|
-
assert_equal false, traces[1].key?('Backtrace')
|
45
|
-
|
46
|
-
assert_equal 'sidekiq-client', traces[2]['Layer']
|
47
|
-
assert_equal 'exit', traces[2]['Label']
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_collect_backtraces_default_value
|
51
|
-
assert_equal TV::Config[:delayedjobclient][:collect_backtraces], false, "default backtrace collection"
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_log_args_default_value
|
55
|
-
assert_equal TV::Config[:delayedjobclient][:log_args], true, "log_args default "
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_obey_collect_backtraces_when_false
|
59
|
-
TraceView::Config[:delayedjobclient][:collect_backtraces] = false
|
60
|
-
|
61
|
-
# Queue up a job to be run
|
62
|
-
::TraceView::API.start_trace(:enqueue_test) do
|
63
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
64
|
-
end
|
65
|
-
|
66
|
-
# Allow the job to be run
|
67
|
-
sleep 5
|
68
|
-
|
69
|
-
traces = get_all_traces
|
70
|
-
assert_equal 23, traces.count, "Trace count"
|
71
|
-
valid_edges?(traces)
|
72
|
-
assert_equal 'sidekiq-client', traces[1]['Layer']
|
73
|
-
assert_equal false, traces[1].key?('Backtrace')
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_obey_collect_backtraces_when_true
|
77
|
-
TraceView::Config[:delayedjobclient][:collect_backtraces] = true
|
78
|
-
|
79
|
-
# Queue up a job to be run
|
80
|
-
::TraceView::API.start_trace(:enqueue_test) do
|
81
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
82
|
-
end
|
83
|
-
|
84
|
-
# Allow the job to be run
|
85
|
-
sleep 5
|
86
|
-
|
87
|
-
traces = get_all_traces
|
88
|
-
assert_equal 23, traces.count, "Trace count"
|
89
|
-
valid_edges?(traces)
|
90
|
-
assert_equal 'sidekiq-client', traces[1]['Layer']
|
91
|
-
assert_equal true, traces[1].key?('Backtrace')
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_obey_log_args_when_false
|
95
|
-
TraceView::Config[:delayedjobclient][:log_args] = false
|
96
|
-
|
97
|
-
# Queue up a job to be run
|
98
|
-
::TraceView::API.start_trace(:enqueue_test) do
|
99
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
100
|
-
end
|
101
|
-
|
102
|
-
# Allow the job to be run
|
103
|
-
sleep 5
|
104
|
-
|
105
|
-
traces = get_all_traces
|
106
|
-
assert_equal 23, traces.count, "Trace count"
|
107
|
-
valid_edges?(traces)
|
108
|
-
assert_equal false, traces[1].key?('Args')
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_obey_log_args_when_true
|
112
|
-
TraceView::Config[:delayedjobclient][:log_args] = true
|
113
|
-
|
114
|
-
# Queue up a job to be run
|
115
|
-
::TraceView::API.start_trace(:enqueue_test) do
|
116
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
117
|
-
end
|
118
|
-
|
119
|
-
# Allow the job to be run
|
120
|
-
sleep 5
|
121
|
-
|
122
|
-
traces = get_all_traces
|
123
|
-
assert_equal 23, traces.count, "Trace count"
|
124
|
-
valid_edges?(traces)
|
125
|
-
assert_equal true, traces[1].key?('Args')
|
126
|
-
assert_equal '[1, 2, 3]', traces[1]['Args']
|
127
|
-
end
|
128
|
-
end
|
@@ -1,177 +0,0 @@
|
|
1
|
-
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
-
# All rights reserved.
|
3
|
-
|
4
|
-
require 'minitest_helper'
|
5
|
-
require_relative "../jobs/delayed_job/remote_call_worker_job"
|
6
|
-
require_relative "../jobs/delayed_job/db_worker_job"
|
7
|
-
require_relative "../jobs/delayed_job/error_worker_job"
|
8
|
-
|
9
|
-
class DelayedJobWorkerTest < Minitest::Test
|
10
|
-
def setup
|
11
|
-
clear_all_traces
|
12
|
-
@collect_backtraces = TraceView::Config[:delayedjobworker][:collect_backtraces]
|
13
|
-
@log_args = TraceView::Config[:delayedjobworker][:log_args]
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
TraceView::Config[:delayedjobworker][:collect_backtraces] = @collect_backtraces
|
18
|
-
TraceView::Config[:delayedjobworker][:log_args] = @log_args
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_reports_version_init
|
22
|
-
init_kvs = ::TraceView::Util.build_init_report
|
23
|
-
assert init_kvs.key?('Ruby.Sidekiq.Version')
|
24
|
-
assert_equal "Sidekiq-#{::Sidekiq::VERSION}", init_kvs['Ruby.Sidekiq.Version']
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_job_run
|
28
|
-
# Queue up a job to be run
|
29
|
-
jid = Sidekiq::Client.push('queue' => 'critical', 'class' => RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
30
|
-
|
31
|
-
# Allow the job to be run
|
32
|
-
sleep 5
|
33
|
-
|
34
|
-
traces = get_all_traces
|
35
|
-
assert_equal 17, traces.count, "Trace count"
|
36
|
-
validate_outer_layers(traces, "sidekiq-worker")
|
37
|
-
valid_edges?(traces)
|
38
|
-
|
39
|
-
# Validate entry layer KVs
|
40
|
-
assert_equal 'always_sampled', traces[0]['TraceOrigin'], "is always_sampled"
|
41
|
-
assert_equal true, traces[0].key?('SampleRate'), "has SampleRate KV"
|
42
|
-
assert_equal true, traces[0].key?('SampleSource'), "has SampleSource KV"
|
43
|
-
|
44
|
-
# Validate Webserver Spec KVs
|
45
|
-
assert_equal Socket.gethostname, traces[0]['HTTP-Host']
|
46
|
-
assert_equal "Sidekiq_critical", traces[0]['Controller']
|
47
|
-
assert_equal "RemoteCallWorkerJob", traces[0]['Action']
|
48
|
-
assert_equal "/sidekiq/critical/RemoteCallWorkerJob", traces[0]['URL']
|
49
|
-
|
50
|
-
# Validate Job Spec KVs
|
51
|
-
assert_equal "job", traces[0]['Spec']
|
52
|
-
assert_equal 'sidekiq', traces[0]['Flavor']
|
53
|
-
assert_equal "RemoteCallWorkerJob", traces[0]['JobName']
|
54
|
-
assert_equal jid, traces[0]['MsgID']
|
55
|
-
assert_equal "critical", traces[0]['Queue']
|
56
|
-
assert_equal "[1, 2, 3]", traces[0]['Args']
|
57
|
-
assert_equal "false", traces[0]['Retry']
|
58
|
-
|
59
|
-
assert_equal false, traces[0].key?('Backtrace')
|
60
|
-
assert_equal "net-http", traces[4]['Layer']
|
61
|
-
assert_equal "entry", traces[4]['Label']
|
62
|
-
assert_equal "memcache", traces[15]['Layer']
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_jobs_with_errors
|
66
|
-
# Queue up a job to be run
|
67
|
-
jid = Sidekiq::Client.push('queue' => 'critical', 'class' => ErrorWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
68
|
-
|
69
|
-
# Allow the job to be run
|
70
|
-
sleep 5
|
71
|
-
|
72
|
-
traces = get_all_traces
|
73
|
-
assert_equal 3, traces.count, "Trace count"
|
74
|
-
validate_outer_layers(traces, "sidekiq-worker")
|
75
|
-
valid_edges?(traces)
|
76
|
-
|
77
|
-
# Validate Webserver Spec KVs
|
78
|
-
assert_equal Socket.gethostname, traces[0]['HTTP-Host']
|
79
|
-
assert_equal "Sidekiq_critical", traces[0]['Controller']
|
80
|
-
assert_equal "ErrorWorkerJob", traces[0]['Action']
|
81
|
-
assert_equal "/sidekiq/critical/ErrorWorkerJob", traces[0]['URL']
|
82
|
-
|
83
|
-
# Validate Job Spec KVs
|
84
|
-
assert_equal "job", traces[0]['Spec']
|
85
|
-
assert_equal 'sidekiq', traces[0]['Flavor']
|
86
|
-
assert_equal "ErrorWorkerJob", traces[0]['JobName']
|
87
|
-
assert_equal jid, traces[0]['MsgID']
|
88
|
-
assert_equal "critical", traces[0]['Queue']
|
89
|
-
assert_equal "[1, 2, 3]", traces[0]['Args']
|
90
|
-
assert_equal "false", traces[0]['Retry']
|
91
|
-
|
92
|
-
assert_equal traces[1]['Layer'], 'sidekiq-worker'
|
93
|
-
assert_equal traces[1]['Label'], 'error'
|
94
|
-
assert_equal traces[1]['ErrorClass'], "RuntimeError"
|
95
|
-
assert traces[1].key?('ErrorMsg')
|
96
|
-
assert traces[1].key?('Backtrace')
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_collect_backtraces_default_value
|
100
|
-
assert_equal TV::Config[:delayedjobworker][:collect_backtraces], false, "default backtrace collection"
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_log_args_default_value
|
104
|
-
assert_equal TV::Config[:delayedjobworker][:log_args], true, "log_args default "
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_obey_collect_backtraces_when_false
|
108
|
-
TraceView::Config[:delayedjobworker][:collect_backtraces] = false
|
109
|
-
|
110
|
-
# Queue up a job to be run
|
111
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
112
|
-
|
113
|
-
# Allow the job to be run
|
114
|
-
sleep 5
|
115
|
-
|
116
|
-
traces = get_all_traces
|
117
|
-
assert_equal 17, traces.count, "Trace count"
|
118
|
-
valid_edges?(traces)
|
119
|
-
assert_equal 'sidekiq-worker', traces[0]['Layer']
|
120
|
-
assert_equal false, traces[0].key?('Backtrace')
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_obey_collect_backtraces_when_true
|
124
|
-
# FIXME: This can't be tested with the current Sidekiq minitest integration (e.g. already booted
|
125
|
-
# sidekiq in a different process)
|
126
|
-
skip
|
127
|
-
|
128
|
-
TraceView::Config[:delayedjobworker][:collect_backtraces] = true
|
129
|
-
|
130
|
-
# Queue up a job to be run
|
131
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
132
|
-
|
133
|
-
# Allow the job to be run
|
134
|
-
sleep 5
|
135
|
-
|
136
|
-
traces = get_all_traces
|
137
|
-
assert_equal 17, traces.count, "Trace count"
|
138
|
-
valid_edges?(traces)
|
139
|
-
assert_equal 'sidekiq-worker', traces[0]['Layer']
|
140
|
-
assert_equal true, traces[0].key?('Backtrace')
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_obey_log_args_when_false
|
144
|
-
# FIXME: This can't be tested with the current Sidekiq minitest integration (e.g. already booted
|
145
|
-
# sidekiq in a different process)
|
146
|
-
skip
|
147
|
-
|
148
|
-
TraceView::Config[:delayedjobworker][:log_args] = false
|
149
|
-
|
150
|
-
# Queue up a job to be run
|
151
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
152
|
-
|
153
|
-
# Allow the job to be run
|
154
|
-
sleep 5
|
155
|
-
|
156
|
-
traces = get_all_traces
|
157
|
-
assert_equal 17, traces.count, "Trace count"
|
158
|
-
valid_edges?(traces)
|
159
|
-
assert_equal false, traces[0].key?('Args')
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_obey_log_args_when_true
|
163
|
-
TraceView::Config[:delayedjobworker][:log_args] = true
|
164
|
-
|
165
|
-
# Queue up a job to be run
|
166
|
-
Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
|
167
|
-
|
168
|
-
# Allow the job to be run
|
169
|
-
sleep 5
|
170
|
-
|
171
|
-
traces = get_all_traces
|
172
|
-
assert_equal 17, traces.count, "Trace count"
|
173
|
-
valid_edges?(traces)
|
174
|
-
assert_equal true, traces[0].key?('Args')
|
175
|
-
assert_equal '[1, 2, 3]', traces[0]['Args']
|
176
|
-
end
|
177
|
-
end
|