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.
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