traceview 3.3.3-java → 3.4.0-java
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/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/rails.rb +26 -32
- data/lib/traceview/frameworks/sinatra/templates.rb +1 -1
- data/lib/traceview/frameworks/sinatra.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
@@ -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
|