appoptics_apm 4.0.2 → 4.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/Dockerfile_test +7 -6
- data/Rakefile +2 -0
- data/docker-compose.yml +22 -0
- data/gemfiles/noop.gemfile +17 -0
- data/lib/appoptics_apm.rb +2 -2
- data/lib/appoptics_apm/api.rb +1 -2
- data/lib/appoptics_apm/api/layerinit.rb +3 -1
- data/lib/appoptics_apm/api/logging.rb +25 -25
- data/lib/appoptics_apm/api/memcache.rb +3 -1
- data/lib/appoptics_apm/api/profiling.rb +39 -33
- data/lib/appoptics_apm/api/tracing.rb +23 -13
- data/lib/appoptics_apm/api/util.rb +1 -1
- data/lib/appoptics_apm/base.rb +1 -0
- data/lib/appoptics_apm/frameworks/sinatra/templates.rb +1 -1
- data/lib/appoptics_apm/inst/rack.rb +135 -111
- data/lib/appoptics_apm/instrumentation.rb +1 -1
- data/lib/appoptics_apm/version.rb +1 -1
- data/test/instrumentation/httpclient_test.rb +4 -20
- data/test/instrumentation/mongo_v1_test.rb +1 -1
- data/test/instrumentation/rack_test.rb +1 -1
- data/test/instrumentation/sequel_mysql2_test.rb +1 -1
- data/test/instrumentation/sequel_mysql_test.rb +1 -1
- data/test/instrumentation/sequel_pg_test.rb +1 -1
- data/test/instrumentation/twitter-cassandra_test.rb +1 -1
- data/test/minitest_helper.rb +1 -0
- data/test/mocked/curb_mocked_test.rb +14 -1
- data/test/mocked/excon_mocked_test.rb +12 -4
- data/test/mocked/faraday_mocked_test.rb +5 -1
- data/test/mocked/http_mocked_test.rb +6 -0
- data/test/mocked/httpclient_mocked_test.rb +14 -1
- data/test/mocked/rest_client_mocked_test.rb +7 -1
- data/test/mocked/typhoeus_mocked_test.rb +15 -0
- data/test/noop/noop_test.rb +145 -0
- metadata +5 -4
- data/test/support/noop_test.rb +0 -88
@@ -325,7 +325,7 @@ if defined?(::Sequel) && !defined?(JRUBY_VERSION) && (RUBY_VERSION < "2.4")
|
|
325
325
|
|
326
326
|
validate_event_keys(traces[1], @entry_kvs)
|
327
327
|
traces[1]['Query'].must_equal "select_by_name"
|
328
|
-
traces[1]['QueryArgs'].
|
328
|
+
traces[1]['QueryArgs'].must_be_nil
|
329
329
|
traces[1]['IsPreparedStatement'].must_equal "true"
|
330
330
|
traces[1].has_key?('Backtrace').must_equal AppOpticsAPM::Config[:sequel][:collect_backtraces]
|
331
331
|
validate_event_keys(traces[2], @exit_kvs)
|
@@ -327,7 +327,7 @@ if defined?(::Sequel) && !defined?(JRUBY_VERSION)
|
|
327
327
|
|
328
328
|
validate_event_keys(traces[1], @entry_kvs)
|
329
329
|
traces[1]['Query'].must_equal "select_by_name"
|
330
|
-
traces[1]['QueryArgs'].
|
330
|
+
traces[1]['QueryArgs'].must_be_nil
|
331
331
|
traces[1]['IsPreparedStatement'].must_equal "true"
|
332
332
|
traces[1].has_key?('Backtrace').must_equal AppOpticsAPM::Config[:sequel][:collect_backtraces]
|
333
333
|
validate_event_keys(traces[2], @exit_kvs)
|
@@ -100,7 +100,7 @@ if defined?(::Cassandra) and !defined?(JRUBY_VERSION)
|
|
100
100
|
# My crappy way to detect and fail if an exception
|
101
101
|
# was raised. I swear there was a Minitest assertion for
|
102
102
|
# this but can't find it.
|
103
|
-
e.
|
103
|
+
e.must_be_nil 'broken when NOT tracing'
|
104
104
|
raise
|
105
105
|
end
|
106
106
|
end
|
data/test/minitest_helper.rb
CHANGED
@@ -6,12 +6,13 @@ if !defined?(JRUBY_VERSION)
|
|
6
6
|
require 'minitest_helper'
|
7
7
|
require 'webmock/minitest'
|
8
8
|
require 'mocha/mini_test'
|
9
|
-
WebMock.allow_net_connect!
|
10
9
|
|
11
10
|
class CurbMockedTest < Minitest::Test
|
12
11
|
|
13
12
|
def setup
|
13
|
+
AppOpticsAPM::Context.clear
|
14
14
|
WebMock.enable!
|
15
|
+
WebMock.reset!
|
15
16
|
WebMock.disable_net_connect!
|
16
17
|
AppOpticsAPM.config_lock.synchronize {
|
17
18
|
@tm = AppOpticsAPM::Config[:tracing_mode]
|
@@ -39,6 +40,7 @@ if !defined?(JRUBY_VERSION)
|
|
39
40
|
|
40
41
|
assert_requested :get, "http://127.0.0.9:8101/", times: 1
|
41
42
|
assert_requested :get, "http://127.0.0.9:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
43
|
+
refute AppOpticsAPM::Context.isValid
|
42
44
|
end
|
43
45
|
|
44
46
|
def test_xtrace_sample_rate_0
|
@@ -54,6 +56,7 @@ if !defined?(JRUBY_VERSION)
|
|
54
56
|
assert_requested :get, "http://127.0.0.4:8101/", times: 1
|
55
57
|
assert_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
56
58
|
assert_not_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
59
|
+
refute AppOpticsAPM::Context.isValid
|
57
60
|
end
|
58
61
|
|
59
62
|
def test_xtrace_no_trace
|
@@ -77,6 +80,7 @@ if !defined?(JRUBY_VERSION)
|
|
77
80
|
|
78
81
|
assert_requested :get, "http://127.0.0.2:8101/", times: 1
|
79
82
|
assert_not_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^.*/}
|
83
|
+
refute AppOpticsAPM::Context.isValid
|
80
84
|
end
|
81
85
|
|
82
86
|
def test_multi_get_no_trace
|
@@ -99,6 +103,7 @@ if !defined?(JRUBY_VERSION)
|
|
99
103
|
urls << "http://127.0.0.7:8101/?three=3"
|
100
104
|
|
101
105
|
Curl::Multi.get(urls, easy_options, multi_options)
|
106
|
+
refute AppOpticsAPM::Context.isValid
|
102
107
|
end
|
103
108
|
|
104
109
|
def test_multi_get_tracing
|
@@ -127,6 +132,7 @@ if !defined?(JRUBY_VERSION)
|
|
127
132
|
AppOpticsAPM::API.start_trace('curb_tests') do
|
128
133
|
Curl::Multi.get(urls, easy_options, multi_options)
|
129
134
|
end
|
135
|
+
refute AppOpticsAPM::Context.isValid
|
130
136
|
end
|
131
137
|
|
132
138
|
def test_multi_get_tracing_not_sampling
|
@@ -156,6 +162,7 @@ if !defined?(JRUBY_VERSION)
|
|
156
162
|
Curl::Multi.get(urls, easy_options, multi_options)
|
157
163
|
end
|
158
164
|
end
|
165
|
+
refute AppOpticsAPM::Context.isValid
|
159
166
|
end
|
160
167
|
|
161
168
|
def test_multi_perform_no_trace
|
@@ -207,6 +214,7 @@ if !defined?(JRUBY_VERSION)
|
|
207
214
|
end
|
208
215
|
end
|
209
216
|
end
|
217
|
+
refute AppOpticsAPM::Context.isValid
|
210
218
|
end
|
211
219
|
|
212
220
|
def test_multi_perform_tracing_not_sampling
|
@@ -237,6 +245,7 @@ if !defined?(JRUBY_VERSION)
|
|
237
245
|
end
|
238
246
|
end
|
239
247
|
end
|
248
|
+
refute AppOpticsAPM::Context.isValid
|
240
249
|
end
|
241
250
|
|
242
251
|
# preserve custom headers
|
@@ -252,6 +261,7 @@ if !defined?(JRUBY_VERSION)
|
|
252
261
|
end
|
253
262
|
|
254
263
|
assert_requested :get, "http://127.0.0.6:8101/", headers: {'Custom'=>'specialvalue'}, times: 1
|
264
|
+
refute AppOpticsAPM::Context.isValid
|
255
265
|
end
|
256
266
|
|
257
267
|
# The following test can't use WebMock because it interferes with our instrumentation
|
@@ -270,6 +280,7 @@ if !defined?(JRUBY_VERSION)
|
|
270
280
|
assert curl.headers['Custom']
|
271
281
|
assert_match /^2B[0-9,A-F]*01$/, curl.headers['X-Trace']
|
272
282
|
assert_match /specialvalue4/, curl.headers['Custom']
|
283
|
+
refute AppOpticsAPM::Context.isValid
|
273
284
|
end
|
274
285
|
|
275
286
|
def test_preserves_custom_headers_on_http_post
|
@@ -287,6 +298,7 @@ if !defined?(JRUBY_VERSION)
|
|
287
298
|
assert curl.headers['Custom']
|
288
299
|
assert_match /^2B[0-9,A-F]*01$/, curl.headers['X-Trace']
|
289
300
|
assert_match /specialvalue4/, curl.headers['Custom']
|
301
|
+
refute AppOpticsAPM::Context.isValid
|
290
302
|
end
|
291
303
|
|
292
304
|
def test_preserves_custom_headers_on_perform
|
@@ -304,6 +316,7 @@ if !defined?(JRUBY_VERSION)
|
|
304
316
|
assert curl.headers['Custom']
|
305
317
|
assert_match /^2B[0-9,A-F]*01$/, curl.headers['X-Trace']
|
306
318
|
assert_match /specialvalue4/, curl.headers['Custom']
|
319
|
+
refute AppOpticsAPM::Context.isValid
|
307
320
|
end
|
308
321
|
|
309
322
|
end
|
@@ -6,12 +6,13 @@ if !defined?(JRUBY_VERSION)
|
|
6
6
|
require 'minitest_helper'
|
7
7
|
require 'webmock/minitest'
|
8
8
|
require 'mocha/mini_test'
|
9
|
-
WebMock.allow_net_connect!
|
10
9
|
|
11
10
|
class ExconTest < Minitest::Test
|
12
11
|
|
13
12
|
def setup
|
13
|
+
AppOpticsAPM::Context.clear
|
14
14
|
WebMock.enable!
|
15
|
+
WebMock.reset!
|
15
16
|
WebMock.disable_net_connect!
|
16
17
|
AppOpticsAPM.config_lock.synchronize {
|
17
18
|
@sample_rate = AppOpticsAPM::Config[:sample_rate]
|
@@ -52,6 +53,7 @@ if !defined?(JRUBY_VERSION)
|
|
52
53
|
|
53
54
|
assert_requested :get, "http://127.0.0.7:8101/", times: 1
|
54
55
|
assert_requested :get, "http://127.0.0.7:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]{56}01/}, times: 1
|
56
|
+
refute AppOpticsAPM::Context.isValid
|
55
57
|
end
|
56
58
|
|
57
59
|
def test_xtrace_tracing_not_sampling
|
@@ -67,6 +69,7 @@ if !defined?(JRUBY_VERSION)
|
|
67
69
|
assert_requested :get, "http://127.0.0.4:8101/", times: 1
|
68
70
|
assert_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
69
71
|
assert_not_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
72
|
+
refute AppOpticsAPM::Context.isValid
|
70
73
|
end
|
71
74
|
|
72
75
|
def test_xtrace_tracing_blacklisted
|
@@ -81,6 +84,7 @@ if !defined?(JRUBY_VERSION)
|
|
81
84
|
|
82
85
|
assert_requested :get, "http://127.0.0.3:8101/", times: 1
|
83
86
|
assert_not_requested :get, "http://127.0.0.3:8101/", headers: {'X-Trace'=>/.*/}
|
87
|
+
refute AppOpticsAPM::Context.isValid
|
84
88
|
end
|
85
89
|
|
86
90
|
# ========== excon pipelined =================================
|
@@ -98,6 +102,7 @@ if !defined?(JRUBY_VERSION)
|
|
98
102
|
assert_requested :put, "http://127.0.0.5:8101/", times: 1
|
99
103
|
assert_requested :get, "http://127.0.0.5:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
100
104
|
assert_requested :put, "http://127.0.0.5:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
105
|
+
refute AppOpticsAPM::Context.isValid
|
101
106
|
end
|
102
107
|
|
103
108
|
def test_xtrace_pipelined_tracing_not_sampling
|
@@ -118,6 +123,7 @@ if !defined?(JRUBY_VERSION)
|
|
118
123
|
assert_requested :put, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
119
124
|
assert_not_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
120
125
|
assert_not_requested :put, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
126
|
+
refute AppOpticsAPM::Context.isValid
|
121
127
|
end
|
122
128
|
|
123
129
|
def test_xtrace_pipelined_no_trace
|
@@ -149,17 +155,19 @@ if !defined?(JRUBY_VERSION)
|
|
149
155
|
assert_requested :put, "http://127.0.0.9:8101/", times: 1
|
150
156
|
assert_not_requested :get, "http://127.9.0.8:8101/", headers: {'X-Trace'=>/^.*$/}
|
151
157
|
assert_not_requested :put, "http://127.9.0.8:8101/", headers: {'X-Trace'=>/^.*$/}
|
158
|
+
refute AppOpticsAPM::Context.isValid
|
152
159
|
end
|
153
160
|
|
154
161
|
# ========== excon make sure headers are preserved =============================
|
155
162
|
def test_preserves_custom_headers
|
156
|
-
stub_request(:get, "http://127.0.0.
|
163
|
+
stub_request(:get, "http://127.0.0.10:8101/").to_return(status: 200, body: "", headers: {})
|
157
164
|
|
158
165
|
AppOpticsAPM::API.start_trace('excon_tests') do
|
159
|
-
Excon.get('http://127.0.0.
|
166
|
+
Excon.get('http://127.0.0.10:8101', headers: { 'Custom' => 'specialvalue' })
|
160
167
|
end
|
161
168
|
|
162
|
-
assert_requested :get, "http://127.0.0.
|
169
|
+
assert_requested :get, "http://127.0.0.10:8101/", headers: {'Custom'=>'specialvalue'}, times: 1
|
170
|
+
refute AppOpticsAPM::Context.isValid
|
163
171
|
end
|
164
172
|
end
|
165
173
|
end
|
@@ -6,12 +6,13 @@ if !defined?(JRUBY_VERSION)
|
|
6
6
|
require 'minitest_helper'
|
7
7
|
require 'webmock/minitest'
|
8
8
|
require 'mocha/mini_test'
|
9
|
-
WebMock.allow_net_connect!
|
10
9
|
|
11
10
|
class FaradayMockedTest < Minitest::Test
|
12
11
|
|
13
12
|
def setup
|
13
|
+
AppOpticsAPM::Context.clear
|
14
14
|
WebMock.enable!
|
15
|
+
WebMock.reset!
|
15
16
|
WebMock.disable_net_connect!
|
16
17
|
AppOpticsAPM.config_lock.synchronize {
|
17
18
|
@sample_rate = AppOpticsAPM::Config[:sample_rate]
|
@@ -40,6 +41,7 @@ if !defined?(JRUBY_VERSION)
|
|
40
41
|
|
41
42
|
assert_requested :get, "http://127.0.0.1:8101/", times: 1
|
42
43
|
assert_requested :get, "http://127.0.0.1:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
44
|
+
refute AppOpticsAPM::Context.isValid
|
43
45
|
end
|
44
46
|
|
45
47
|
def test_tracing_not_sampling
|
@@ -58,6 +60,7 @@ if !defined?(JRUBY_VERSION)
|
|
58
60
|
assert_requested :get, "http://127.0.0.12:8101/", times: 1
|
59
61
|
assert_requested :get, "http://127.0.0.12:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
60
62
|
assert_not_requested :get, "http://127.0.0.12:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
63
|
+
refute AppOpticsAPM::Context.isValid
|
61
64
|
end
|
62
65
|
|
63
66
|
def test_no_xtrace
|
@@ -87,6 +90,7 @@ if !defined?(JRUBY_VERSION)
|
|
87
90
|
|
88
91
|
assert_requested :get, "http://127.0.0.4:8101/", times: 1
|
89
92
|
assert_not_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^.*$/}
|
93
|
+
refute AppOpticsAPM::Context.isValid
|
90
94
|
end
|
91
95
|
|
92
96
|
end
|
@@ -14,6 +14,7 @@ unless defined?(JRUBY_VERSION)
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def setup
|
17
|
+
AppOpticsAPM::Context.clear
|
17
18
|
AppOpticsAPM.config_lock.synchronize do
|
18
19
|
@sample_rate = AppOpticsAPM::Config[:sample_rate]
|
19
20
|
end
|
@@ -41,6 +42,7 @@ unless defined?(JRUBY_VERSION)
|
|
41
42
|
http.request(request)
|
42
43
|
end
|
43
44
|
end
|
45
|
+
refute AppOpticsAPM::Context.isValid
|
44
46
|
end
|
45
47
|
|
46
48
|
def test_tracing_not_sampling
|
@@ -60,6 +62,7 @@ unless defined?(JRUBY_VERSION)
|
|
60
62
|
end
|
61
63
|
end
|
62
64
|
end
|
65
|
+
refute AppOpticsAPM::Context.isValid
|
63
66
|
end
|
64
67
|
|
65
68
|
def test_no_xtrace
|
@@ -89,6 +92,7 @@ unless defined?(JRUBY_VERSION)
|
|
89
92
|
end
|
90
93
|
end
|
91
94
|
end
|
95
|
+
refute AppOpticsAPM::Context.isValid
|
92
96
|
end
|
93
97
|
|
94
98
|
def test_not_sampling_blacklisted
|
@@ -107,6 +111,7 @@ unless defined?(JRUBY_VERSION)
|
|
107
111
|
end
|
108
112
|
end
|
109
113
|
end
|
114
|
+
refute AppOpticsAPM::Context.isValid
|
110
115
|
end
|
111
116
|
|
112
117
|
# ========== make sure headers are preserved =============================
|
@@ -124,6 +129,7 @@ unless defined?(JRUBY_VERSION)
|
|
124
129
|
http.request(request) # Net::HTTPResponse object
|
125
130
|
end
|
126
131
|
end
|
132
|
+
refute AppOpticsAPM::Context.isValid
|
127
133
|
end
|
128
134
|
end
|
129
135
|
end
|
@@ -5,12 +5,13 @@ unless defined?(JRUBY_VERSION)
|
|
5
5
|
require 'minitest_helper'
|
6
6
|
require 'webmock/minitest'
|
7
7
|
require 'mocha/mini_test'
|
8
|
-
WebMock.allow_net_connect!
|
9
8
|
|
10
9
|
class HTTPClientMockedTest < Minitest::Test
|
11
10
|
|
12
11
|
def setup
|
12
|
+
AppOpticsAPM::Context.clear
|
13
13
|
WebMock.enable!
|
14
|
+
WebMock.reset!
|
14
15
|
WebMock.disable_net_connect!
|
15
16
|
AppOpticsAPM.config_lock.synchronize do
|
16
17
|
@sample_rate = AppOpticsAPM::Config[:sample_rate]
|
@@ -38,6 +39,7 @@ unless defined?(JRUBY_VERSION)
|
|
38
39
|
|
39
40
|
assert_requested :get, "http://127.0.0.1:8101/", times: 1
|
40
41
|
assert_requested :get, "http://127.0.0.1:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
42
|
+
refute AppOpticsAPM::Context.isValid
|
41
43
|
end
|
42
44
|
|
43
45
|
def test_do_request_tracing_sampling_hash_headers
|
@@ -49,6 +51,7 @@ unless defined?(JRUBY_VERSION)
|
|
49
51
|
|
50
52
|
assert_requested :get, "http://127.0.0.6:8101/", times: 1
|
51
53
|
assert_requested :get, "http://127.0.0.6:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
54
|
+
refute AppOpticsAPM::Context.isValid
|
52
55
|
end
|
53
56
|
|
54
57
|
def test_do_request_tracing_not_sampling
|
@@ -64,6 +67,7 @@ unless defined?(JRUBY_VERSION)
|
|
64
67
|
assert_requested :get, "http://127.0.0.2:8101/", times: 1
|
65
68
|
assert_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
66
69
|
assert_not_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
70
|
+
refute AppOpticsAPM::Context.isValid
|
67
71
|
end
|
68
72
|
|
69
73
|
def test_do_request_no_xtrace
|
@@ -88,6 +92,7 @@ unless defined?(JRUBY_VERSION)
|
|
88
92
|
|
89
93
|
assert_requested :get, "http://127.0.0.4:8101/"
|
90
94
|
assert_not_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^.*$/}
|
95
|
+
refute AppOpticsAPM::Context.isValid
|
91
96
|
end
|
92
97
|
|
93
98
|
def test_do_request_not_sampling_blacklisted
|
@@ -104,6 +109,7 @@ unless defined?(JRUBY_VERSION)
|
|
104
109
|
|
105
110
|
assert_requested :get, "http://127.0.0.5:8101/"
|
106
111
|
assert_not_requested :get, "http://127.0.0.5:8101/", headers: {'X-Trace'=>/^.*$/}
|
112
|
+
refute AppOpticsAPM::Context.isValid
|
107
113
|
end
|
108
114
|
|
109
115
|
#====== ASYNC REQUEST ================================================
|
@@ -123,6 +129,7 @@ unless defined?(JRUBY_VERSION)
|
|
123
129
|
clnt = HTTPClient.new
|
124
130
|
clnt.get_async('http://127.0.0.11:8101/', nil, [['some_header', 'some_value'], ['some_header2', 'some_value2']])
|
125
131
|
end
|
132
|
+
refute AppOpticsAPM::Context.isValid
|
126
133
|
end
|
127
134
|
|
128
135
|
def test_async_tracing_sampling_hash_headers
|
@@ -139,6 +146,7 @@ unless defined?(JRUBY_VERSION)
|
|
139
146
|
clnt = HTTPClient.new
|
140
147
|
clnt.get_async('http://127.0.0.16:8101/', nil, { 'some_header' => 'some_value', 'some_header2' => 'some_value2' })
|
141
148
|
end
|
149
|
+
refute AppOpticsAPM::Context.isValid
|
142
150
|
end
|
143
151
|
|
144
152
|
def test_async_tracing_not_sampling
|
@@ -159,6 +167,7 @@ unless defined?(JRUBY_VERSION)
|
|
159
167
|
clnt.get_async('http://127.0.0.12:8101/')
|
160
168
|
end
|
161
169
|
end
|
170
|
+
refute AppOpticsAPM::Context.isValid
|
162
171
|
end
|
163
172
|
|
164
173
|
def test_async_no_xtrace
|
@@ -192,6 +201,7 @@ unless defined?(JRUBY_VERSION)
|
|
192
201
|
clnt.get_async('http://127.0.0.14:8101/')
|
193
202
|
end
|
194
203
|
end
|
204
|
+
refute AppOpticsAPM::Context.isValid
|
195
205
|
end
|
196
206
|
|
197
207
|
def test_async_not_sampling_blacklisted
|
@@ -212,6 +222,7 @@ unless defined?(JRUBY_VERSION)
|
|
212
222
|
clnt.get_async('http://127.0.0.15:8101/')
|
213
223
|
end
|
214
224
|
end
|
225
|
+
refute AppOpticsAPM::Context.isValid
|
215
226
|
end
|
216
227
|
|
217
228
|
# ========== make sure headers are preserved =============================
|
@@ -224,6 +235,7 @@ unless defined?(JRUBY_VERSION)
|
|
224
235
|
end
|
225
236
|
|
226
237
|
assert_requested :get, "http://127.0.0.6:8101/", headers: {'Custom'=>'specialvalue'}, times: 1
|
238
|
+
refute AppOpticsAPM::Context.isValid
|
227
239
|
end
|
228
240
|
|
229
241
|
def test_async_preserves_custom_headers
|
@@ -240,6 +252,7 @@ unless defined?(JRUBY_VERSION)
|
|
240
252
|
clnt = HTTPClient.new
|
241
253
|
clnt.get_async('http://127.0.0.6:8101/', nil, [['Custom', 'specialvalue'], ['some_header2', 'some_value2']])
|
242
254
|
end
|
255
|
+
refute AppOpticsAPM::Context.isValid
|
243
256
|
end
|
244
257
|
end
|
245
258
|
end
|
@@ -5,12 +5,13 @@ unless defined?(JRUBY_VERSION)
|
|
5
5
|
require 'minitest_helper'
|
6
6
|
require 'webmock/minitest'
|
7
7
|
require 'mocha/mini_test'
|
8
|
-
WebMock.allow_net_connect!
|
9
8
|
|
10
9
|
class RestClientMockedTest < Minitest::Test
|
11
10
|
|
12
11
|
def setup
|
12
|
+
AppOpticsAPM::Context.clear
|
13
13
|
WebMock.enable!
|
14
|
+
WebMock.reset!
|
14
15
|
WebMock.disable_net_connect!
|
15
16
|
AppOpticsAPM.config_lock.synchronize do
|
16
17
|
@sample_rate = AppOpticsAPM::Config[:sample_rate]
|
@@ -35,6 +36,7 @@ unless defined?(JRUBY_VERSION)
|
|
35
36
|
end
|
36
37
|
|
37
38
|
assert_requested :get, "http://127.0.0.1:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*01$/}, times: 1
|
39
|
+
refute AppOpticsAPM::Context.isValid
|
38
40
|
end
|
39
41
|
|
40
42
|
def test_tracing_not_sampling
|
@@ -49,6 +51,7 @@ unless defined?(JRUBY_VERSION)
|
|
49
51
|
|
50
52
|
assert_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B[0-9,A-F]*00$/}, times: 1
|
51
53
|
assert_not_requested :get, "http://127.0.0.2:8101/", headers: {'X-Trace'=>/^2B0*$/}
|
54
|
+
refute AppOpticsAPM::Context.isValid
|
52
55
|
end
|
53
56
|
|
54
57
|
def test_no_xtrace
|
@@ -72,6 +75,7 @@ unless defined?(JRUBY_VERSION)
|
|
72
75
|
|
73
76
|
assert_requested :get, "http://127.0.0.4:8101/", times: 1
|
74
77
|
assert_not_requested :get, "http://127.0.0.4:8101/", headers: {'X-Trace'=>/^.*$/}
|
78
|
+
refute AppOpticsAPM::Context.isValid
|
75
79
|
end
|
76
80
|
|
77
81
|
def test_not_sampling_blacklisted
|
@@ -87,6 +91,7 @@ unless defined?(JRUBY_VERSION)
|
|
87
91
|
|
88
92
|
assert_requested :get, "http://127.0.0.5:8101/", times: 1
|
89
93
|
assert_not_requested :get, "http://127.0.0.5:8101/", headers: {'X-Trace'=>/^.*$/}
|
94
|
+
refute AppOpticsAPM::Context.isValid
|
90
95
|
end
|
91
96
|
|
92
97
|
def test_preserves_custom_headers
|
@@ -97,6 +102,7 @@ unless defined?(JRUBY_VERSION)
|
|
97
102
|
end
|
98
103
|
|
99
104
|
assert_requested :get, "http://127.0.0.6:8101/", headers: {'Custom'=>'specialvalue'}, times: 1
|
105
|
+
refute AppOpticsAPM::Context.isValid
|
100
106
|
end
|
101
107
|
|
102
108
|
end
|