traceview 3.3.3-java → 3.4.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +18 -18
  3. data/CHANGELOG.md +13 -0
  4. data/README.md +3 -1
  5. data/Rakefile +18 -9
  6. data/gemfiles/delayed_job.gemfile +38 -0
  7. data/gemfiles/frameworks.gemfile +1 -2
  8. data/gemfiles/libraries.gemfile +1 -2
  9. data/gemfiles/rails23.gemfile +1 -2
  10. data/gemfiles/rails30.gemfile +4 -2
  11. data/gemfiles/rails31.gemfile +4 -2
  12. data/gemfiles/rails32.gemfile +4 -2
  13. data/gemfiles/rails40.gemfile +4 -2
  14. data/gemfiles/rails41.gemfile +4 -2
  15. data/gemfiles/rails42.gemfile +4 -2
  16. data/lib/traceview/api/layerinit.rb +3 -5
  17. data/lib/traceview/api/logging.rb +63 -50
  18. data/lib/traceview/api/memcache.rb +10 -9
  19. data/lib/traceview/api/profiling.rb +6 -7
  20. data/lib/traceview/api/util.rb +1 -1
  21. data/lib/traceview/base.rb +21 -7
  22. data/lib/traceview/config.rb +8 -4
  23. data/lib/traceview/frameworks/padrino.rb +2 -2
  24. data/lib/traceview/frameworks/rails/inst/action_controller.rb +3 -3
  25. data/lib/traceview/frameworks/rails/inst/action_view.rb +4 -2
  26. data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +4 -2
  27. data/lib/traceview/frameworks/rails/inst/action_view_30.rb +4 -2
  28. data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +3 -3
  29. data/lib/traceview/frameworks/rails.rb +26 -32
  30. data/lib/traceview/frameworks/sinatra/templates.rb +1 -1
  31. data/lib/traceview/frameworks/sinatra.rb +1 -1
  32. data/lib/traceview/inst/dalli.rb +4 -5
  33. data/lib/traceview/inst/delayed_job.rb +92 -0
  34. data/lib/traceview/inst/em-http-request.rb +3 -0
  35. data/lib/traceview/inst/excon.rb +3 -3
  36. data/lib/traceview/inst/faraday.rb +4 -1
  37. data/lib/traceview/inst/mongo.rb +10 -5
  38. data/lib/traceview/inst/moped.rb +4 -4
  39. data/lib/traceview/inst/redis.rb +5 -7
  40. data/lib/traceview/inst/resque.rb +3 -3
  41. data/lib/traceview/inst/rest-client.rb +2 -2
  42. data/lib/traceview/inst/sidekiq-client.rb +3 -0
  43. data/lib/traceview/inst/sidekiq-worker.rb +3 -0
  44. data/lib/traceview/inst/twitter-cassandra.rb +8 -4
  45. data/lib/traceview/test.rb +30 -1
  46. data/lib/traceview/util.rb +7 -0
  47. data/lib/traceview/version.rb +2 -2
  48. data/test/frameworks/rails3x_test.rb +12 -2
  49. data/test/frameworks/rails4x_test.rb +12 -2
  50. data/test/instrumentation/curb_test.rb +2 -2
  51. data/test/instrumentation/dalli_test.rb +121 -118
  52. data/test/instrumentation/httpclient_test.rb +0 -1
  53. data/test/jobs/delayed_job/db_worker_job.rb +29 -0
  54. data/test/jobs/delayed_job/error_worker_job.rb +10 -0
  55. data/test/jobs/delayed_job/remote_call_worker_job.rb +20 -0
  56. data/test/minitest_helper.rb +8 -3
  57. data/test/models/widget.rb +19 -0
  58. data/test/queues/delayed_job-client_test.rb +95 -0
  59. data/test/queues/delayed_job-worker_test.rb +91 -0
  60. data/test/servers/delayed_job.rb +102 -0
  61. data/test/servers/rails3x_8140.rb +17 -1
  62. data/test/servers/rails4x_8140.rb +18 -1
  63. data/test/support/auto_tracing.rb +40 -0
  64. data/test/support/config_test.rb +5 -1
  65. data/traceview.gemspec +1 -0
  66. metadata +34 -6
  67. data/test/instrumentation/delayed_job-client_test.rb +0 -128
  68. 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