newrelic_rpm 3.14.2.312 → 3.14.3.313

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -5
  3. data/CHANGELOG +22 -0
  4. data/lib/new_relic/agent/agent.rb +0 -4
  5. data/lib/new_relic/agent/configuration/default_source.rb +114 -107
  6. data/lib/new_relic/agent/database.rb +17 -1
  7. data/lib/new_relic/agent/database/obfuscation_helpers.rb +68 -48
  8. data/lib/new_relic/agent/database/obfuscator.rb +4 -23
  9. data/lib/new_relic/agent/database/postgres_explain_obfuscator.rb +1 -1
  10. data/lib/new_relic/agent/instrumentation/data_mapper.rb +20 -1
  11. data/lib/new_relic/agent/instrumentation/evented_subscriber.rb +1 -1
  12. data/lib/new_relic/agent/rules_engine.rb +39 -2
  13. data/lib/new_relic/agent/rules_engine/segment_terms_rule.rb +27 -5
  14. data/lib/new_relic/agent/sql_sampler.rb +7 -3
  15. data/lib/new_relic/language_support.rb +8 -0
  16. data/lib/new_relic/version.rb +1 -1
  17. data/lib/tasks/config.html.erb +5 -1
  18. data/lib/tasks/config.rake +10 -2
  19. data/lib/tasks/config.text.erb +6 -5
  20. data/test/environments/rails32/Gemfile +6 -1
  21. data/test/fixtures/cross_agent_tests/aws.json +95 -1
  22. data/test/fixtures/cross_agent_tests/cat/README.md +28 -0
  23. data/test/fixtures/cross_agent_tests/cat/cat_map.json +595 -0
  24. data/test/fixtures/cross_agent_tests/cat/path_hashing.json +51 -0
  25. data/test/fixtures/cross_agent_tests/data_transport/data_transport.json +1441 -0
  26. data/test/fixtures/cross_agent_tests/data_transport/data_transport.md +35 -0
  27. data/test/fixtures/cross_agent_tests/sql_obfuscation/README.md +7 -2
  28. data/test/fixtures/cross_agent_tests/sql_obfuscation/sql_obfuscation.json +261 -35
  29. data/test/fixtures/cross_agent_tests/transaction_segment_terms.json +305 -17
  30. data/test/multiverse/suites/active_record/active_record_test.rb +1 -1
  31. data/test/multiverse/suites/agent_only/rename_rule_test.rb +12 -12
  32. data/test/multiverse/suites/datamapper/datamapper_test.rb +23 -0
  33. data/test/multiverse/suites/rails/Envfile +10 -2
  34. data/test/new_relic/agent/database/sql_obfuscation_test.rb +2 -7
  35. data/test/performance/README.md +3 -10
  36. data/test/performance/lib/performance/table.rb +1 -1
  37. data/test/performance/suites/rules_engine.rb +35 -0
  38. data/test/performance/suites/segment_terms_rule.rb +27 -0
  39. data/test/performance/suites/sql_obfuscation.rb +19 -0
  40. metadata +9 -2
@@ -46,7 +46,8 @@ namespace :newrelic do
46
46
  :key => format_key(section_key, key),
47
47
  :type => format_type(value[:type]),
48
48
  :description => format_description(value),
49
- :default => format_default_value(value)
49
+ :default => format_default_value(value),
50
+ :env_var => format_env_var(section_key, key)
50
51
  }
51
52
  end
52
53
  sections
@@ -109,10 +110,17 @@ namespace :newrelic do
109
110
  if spec[:default].is_a?(Proc)
110
111
  '(Dynamic)'
111
112
  else
112
- spec[:default].inspect
113
+ "<code>#{spec[:default].inspect}</code>"
113
114
  end
114
115
  end
115
116
 
117
+ def format_env_var(section_key, key)
118
+ v = "NEW_RELIC_"
119
+ v << "#{section_key}_" unless section_key == GENERAL || section_key == DISABLING
120
+ v << key.to_s
121
+ v.upcase
122
+ end
123
+
116
124
  def pluck(key, config_hash)
117
125
  value = config_hash.delete(key)
118
126
  [key, value]
@@ -1,7 +1,8 @@
1
- <% sections.each do |(section_key, section_name, section_description, configs)| %><% configs.each do |config|%>
2
- <%=config[:key]%>
3
- <%=config[:description]%>
1
+ <% sections.each do |(section_key, section_name, section_description, configs)| %><% configs.each do |config| %>
2
+ <%= config[:key] %>
3
+ <%= config[:description] %>
4
4
 
5
- Type: <%=config[:type]%>
6
- Default: <%=config[:default]%>
5
+ Type: <%= config[:type] %>
6
+ Default: <%= config[:default] %>
7
+ Environ var: <%= config[:env_var] %>
7
8
  ------------------------------<% end %><% end %>
@@ -1,6 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '~>3.2.20'
3
+ if RUBY_VERSION < '1.9.3' # Rails 3.2.22.1 is incompatible with MRI 1.8.7 / ree
4
+ gem 'rails', '3.2.22'
5
+ else
6
+ gem 'rails', '~>3.2.20'
7
+ end
8
+
4
9
  gem 'i18n', '0.6.11'
5
10
 
6
11
  gem 'rake', '~>10.1.1'
@@ -214,5 +214,99 @@
214
214
  }
215
215
  },
216
216
  "expected_vendors_hash": null
217
+ },
218
+ {
219
+ "testname": "UTF-8 high codepoints",
220
+ "uris":{
221
+ "http://169.254.169.254/2008-02-01/meta-data/instance-type":{
222
+ "response":"test.type",
223
+ "timeout":false
224
+ },
225
+ "http://169.254.169.254/2008-02-01/meta-data/instance-id":{
226
+ "response": "滈 橀槶澉 鞻饙騴 鱙鷭黂 甗糲 紁羑 嗂 蛶觢豥 餤駰鬳 釂鱞鸄",
227
+ "timeout":false
228
+ },
229
+ "http://169.254.169.254/2008-02-01/meta-data/placement/availability-zone":{
230
+ "response":"us-west-2b",
231
+ "timeout":false
232
+ }
233
+ },
234
+ "expected_vendors_hash": {
235
+ "aws": {
236
+ "id": "滈 橀槶澉 鞻饙騴 鱙鷭黂 甗糲 紁羑 嗂 蛶觢豥 餤駰鬳 釂鱞鸄",
237
+ "type": "test.type",
238
+ "zone": "us-west-2b"
239
+ }
240
+ }
241
+ },
242
+ {
243
+ "testname": "comma with multibyte characters",
244
+ "uris":{
245
+ "http://169.254.169.254/2008-02-01/meta-data/instance-type":{
246
+ "response":"test.type",
247
+ "timeout":false
248
+ },
249
+ "http://169.254.169.254/2008-02-01/meta-data/instance-id":{
250
+ "response": "滈 橀槶澉 鞻饙騴 鱙鷭黂 甗糲, 紁羑 嗂 蛶觢豥 餤駰鬳 釂鱞鸄",
251
+ "timeout":false
252
+ },
253
+ "http://169.254.169.254/2008-02-01/meta-data/placement/availability-zone":{
254
+ "response":"us-west-2b",
255
+ "timeout":false
256
+ }
257
+ },
258
+ "expected_vendors_hash": null,
259
+ "expected_metrics": {
260
+ "Supportability/utilization/aws/error": {
261
+ "call_count":1
262
+ }
263
+ }
264
+ },
265
+ {
266
+ "testname": "Exclamation point in name",
267
+ "uris":{
268
+ "http://169.254.169.254/2008-02-01/meta-data/instance-type":{
269
+ "response":"test.type",
270
+ "timeout":false
271
+ },
272
+ "http://169.254.169.254/2008-02-01/meta-data/instance-id":{
273
+ "response":"bang!",
274
+ "timeout":false
275
+ },
276
+ "http://169.254.169.254/2008-02-01/meta-data/placement/availability-zone":{
277
+ "response":"us-west-2b",
278
+ "timeout":false
279
+ }
280
+ },
281
+ "expected_vendors_hash": null,
282
+ "expected_metrics": {
283
+ "Supportability/utilization/aws/error": {
284
+ "call_count":1
285
+ }
286
+ }
287
+ },
288
+ {
289
+ "testname": "Valid punctuation in response",
290
+ "uris":{
291
+ "http://169.254.169.254/2008-02-01/meta-data/instance-type":{
292
+ "response":"a-b_c.3... and/or 503 867-5309",
293
+ "timeout":false
294
+ },
295
+ "http://169.254.169.254/2008-02-01/meta-data/instance-id":{
296
+ "response": "EC2001",
297
+ "timeout":false
298
+ },
299
+ "http://169.254.169.254/2008-02-01/meta-data/placement/availability-zone":{
300
+ "response":"us-east-2b",
301
+ "timeout":false
302
+ }
303
+ },
304
+ "expected_vendors_hash": {
305
+ "aws": {
306
+ "id": "EC2001",
307
+ "type": "a-b_c.3... and/or 503 867-5309",
308
+ "zone": "us-east-2b"
309
+ }
310
+ }
217
311
  }
218
- ]
312
+ ]
@@ -0,0 +1,28 @@
1
+ ### CAT Map test details
2
+
3
+ The CAT map test cases in `cat_map.json` are meant to be used to verify the
4
+ attributes that agents collect and attach to analytics transaction events for
5
+ the CAT map project.
6
+
7
+ **NOTE** currently `nr.apdexPerfZone` is not covered by these tests, make sure you test for this yourself until it is added to these tests.
8
+
9
+ Each test case should correspond to a simulated transaction in the agent under
10
+ test. Here's what the various fields in each test case mean:
11
+
12
+ | Name | Meaning |
13
+ | ---- | ------- |
14
+ | `name` | A human-meaningful name for the test case. |
15
+ | `appName` | The name of the New Relic application for the simulated transaction. |
16
+ | `transactionName` | The final name of the simulated transaction. |
17
+ | `transactionGuid` | The GUID of the simulated transaction. |
18
+ | `inboundPayload` | The (non-serialized) contents of the `X-NewRelic-Transaction` HTTP request header on the simulated transaction. Note that this value should be serialized to JSON, obfuscated using the CAT obfuscation algorithm, and Base64-encoded before being used in the header value. Note also that the `X-NewRelic-ID` header should be set on the simulated transaction, though its value is not specified in these tests. |
19
+ | `expectedIntrinsicFields` | A set of key-value pairs that are expected to be present in the analytics event generated for the simulated transaction. These fields should be present in the first hash of the analytic event payload (built-in agent-supplied fields). |
20
+ | `nonExpectedIntrinsicFields` | An array of attribute names that should *not* be present in the analytics event generated for the simulated transaction. |
21
+ | `outboundRequests` | An array of objects representing outbound requests that should be made in the context of the simulated transaction. See the table below for details. Only present if the test case involves making outgoing requests from the simulated transaction. |
22
+
23
+ Here's what the fields of each entry in the `outboundRequests` array mean:
24
+
25
+ | Name | Meaning |
26
+ | ---- | ------- |
27
+ | `outboundTxnName` | The name of the simulated transaction at the time this outbound request is made. Your test driver should set the transaction name to this value prior to simulating the outbound request. |
28
+ | `expectedOutboundPayload` | The expected (un-obfuscated) content of the outbound `X-NewRelic-Transaction` request header for this request. |
@@ -0,0 +1,595 @@
1
+ [
2
+ {
3
+ "name": "new_cat",
4
+ "appName": "testAppName",
5
+ "transactionName": "WebTransaction/Custom/testTxnName",
6
+ "transactionGuid": "9323dc260548ed0e",
7
+ "inboundPayload": [
8
+ "b854df4feb2b1f06",
9
+ false,
10
+ "7e249074f277923d",
11
+ "5d2957be"
12
+ ],
13
+ "expectedIntrinsicFields": {
14
+ "nr.guid": "9323dc260548ed0e",
15
+ "nr.tripId": "7e249074f277923d",
16
+ "nr.pathHash": "815b96d3",
17
+ "nr.referringTransactionGuid": "b854df4feb2b1f06",
18
+ "nr.referringPathHash": "5d2957be"
19
+ },
20
+ "nonExpectedIntrinsicFields": [
21
+ "nr.alternatePathHashes"
22
+ ]
23
+ },
24
+ {
25
+ "name": "new_cat_path_hash_with_leading_zero",
26
+ "appName": "testAppName",
27
+ "transactionName": "WebTransaction/Custom/txn4",
28
+ "transactionGuid": "9323dc260548ed0e",
29
+ "inboundPayload": [
30
+ "b854df4feb2b1f06",
31
+ false,
32
+ "7e249074f277923d",
33
+ "5d2957be"
34
+ ],
35
+ "expectedIntrinsicFields": {
36
+ "nr.guid": "9323dc260548ed0e",
37
+ "nr.tripId": "7e249074f277923d",
38
+ "nr.pathHash": "0e258e4e",
39
+ "nr.referringTransactionGuid": "b854df4feb2b1f06",
40
+ "nr.referringPathHash": "5d2957be"
41
+ },
42
+ "nonExpectedIntrinsicFields": [
43
+ "nr.alternatePathHashes"
44
+ ]
45
+ },
46
+ {
47
+ "name": "new_cat_path_hash_with_unicode_name",
48
+ "appName": "testAppName",
49
+ "transactionName": "WebTransaction/Custom/txn\u221a\u221a\u221a",
50
+ "transactionGuid": "9323dc260548ed0e",
51
+ "inboundPayload": [
52
+ "b854df4feb2b1f06",
53
+ false,
54
+ "7e249074f277923d",
55
+ "5d2957be"
56
+ ],
57
+ "expectedIntrinsicFields": {
58
+ "nr.guid": "9323dc260548ed0e",
59
+ "nr.tripId": "7e249074f277923d",
60
+ "nr.pathHash": "3d015d23",
61
+ "nr.referringTransactionGuid": "b854df4feb2b1f06",
62
+ "nr.referringPathHash": "5d2957be"
63
+ },
64
+ "nonExpectedIntrinsicFields": [
65
+ "nr.alternatePathHashes"
66
+ ]
67
+ },
68
+ {
69
+ "name": "new_cat_no_referring_payload",
70
+ "appName": "testAppName",
71
+ "transactionName": "WebTransaction/Custom/testTxnName",
72
+ "transactionGuid": "9323dc260548ed0e",
73
+ "inboundPayload": null,
74
+ "expectedIntrinsicFields": {},
75
+ "nonExpectedIntrinsicFields": [
76
+ "nr.guid",
77
+ "nr.tripId",
78
+ "nr.pathHash",
79
+ "nr.referringTransactionGuid",
80
+ "nr.referringPathHash",
81
+ "nr.alternatePathHashes"
82
+ ]
83
+ },
84
+ {
85
+ "name": "new_cat_with_call_out",
86
+ "appName": "testAppName",
87
+ "transactionName": "WebTransaction/Custom/testTxnName",
88
+ "transactionGuid": "9323dc260548ed0e",
89
+ "inboundPayload": null,
90
+ "outboundRequests": [
91
+ {
92
+ "outboundTxnName": "WebTransaction/Custom/testTxnName",
93
+ "expectedOutboundPayload": [
94
+ "9323dc260548ed0e",
95
+ false,
96
+ "9323dc260548ed0e",
97
+ "3b0939af"
98
+ ]
99
+ }
100
+ ],
101
+ "expectedIntrinsicFields": {
102
+ "nr.guid": "9323dc260548ed0e",
103
+ "nr.tripId": "9323dc260548ed0e",
104
+ "nr.pathHash": "3b0939af"
105
+ },
106
+ "nonExpectedIntrinsicFields": [
107
+ "nr.referringTransactionGuid",
108
+ "nr.referringPathHash",
109
+ "nr.alternatePathHashes"
110
+ ]
111
+ },
112
+ {
113
+ "name": "new_cat_with_multiple_calls_out",
114
+ "appName": "testAppName",
115
+ "transactionName": "WebTransaction/Custom/testTxnName",
116
+ "transactionGuid": "9323dc260548ed0e",
117
+ "inboundPayload": null,
118
+ "outboundRequests": [
119
+ {
120
+ "outboundTxnName": "WebTransaction/Custom/otherTxnName",
121
+ "expectedOutboundPayload": [
122
+ "9323dc260548ed0e",
123
+ false,
124
+ "9323dc260548ed0e",
125
+ "f1c8adf5"
126
+ ]
127
+ },
128
+ {
129
+ "outboundTxnName": "WebTransaction/Custom/otherTxnName",
130
+ "expectedOutboundPayload": [
131
+ "9323dc260548ed0e",
132
+ false,
133
+ "9323dc260548ed0e",
134
+ "f1c8adf5"
135
+ ]
136
+ },
137
+ {
138
+ "outboundTxnName": "WebTransaction/Custom/moreOtherTxnName",
139
+ "expectedOutboundPayload": [
140
+ "9323dc260548ed0e",
141
+ false,
142
+ "9323dc260548ed0e",
143
+ "ea19b61c"
144
+ ]
145
+ },
146
+ {
147
+ "outboundTxnName": "WebTransaction/Custom/moreDifferentTxnName",
148
+ "expectedOutboundPayload": [
149
+ "9323dc260548ed0e",
150
+ false,
151
+ "9323dc260548ed0e",
152
+ "e00736cc"
153
+ ]
154
+ }
155
+ ],
156
+ "expectedIntrinsicFields": {
157
+ "nr.guid": "9323dc260548ed0e",
158
+ "nr.tripId": "9323dc260548ed0e",
159
+ "nr.pathHash": "3b0939af",
160
+ "nr.alternatePathHashes": "e00736cc,ea19b61c,f1c8adf5"
161
+ },
162
+ "nonExpectedIntrinsicFields": [
163
+ "nr.referringTransactionGuid",
164
+ "nr.referringPathHash"
165
+ ]
166
+ },
167
+ {
168
+ "name": "new_cat_with_many_unique_calls_out",
169
+ "appName": "testAppName",
170
+ "transactionName": "WebTransaction/Custom/testTxnName",
171
+ "transactionGuid": "9323dc260548ed0e",
172
+ "inboundPayload": null,
173
+ "outboundRequests": [
174
+ {
175
+ "outboundTxnName": "WebTransaction/Custom/txn1",
176
+ "expectedOutboundPayload": [
177
+ "9323dc260548ed0e",
178
+ false,
179
+ "9323dc260548ed0e",
180
+ "93fb4310"
181
+ ]
182
+ },
183
+ {
184
+ "outboundTxnName": "WebTransaction/Custom/txn2",
185
+ "expectedOutboundPayload": [
186
+ "9323dc260548ed0e",
187
+ false,
188
+ "9323dc260548ed0e",
189
+ "a67c2da4"
190
+ ]
191
+ },
192
+ {
193
+ "outboundTxnName": "WebTransaction/Custom/txn3",
194
+ "expectedOutboundPayload": [
195
+ "9323dc260548ed0e",
196
+ false,
197
+ "9323dc260548ed0e",
198
+ "0d932b2b"
199
+ ]
200
+ },
201
+ {
202
+ "outboundTxnName": "WebTransaction/Custom/txn4",
203
+ "expectedOutboundPayload": [
204
+ "9323dc260548ed0e",
205
+ false,
206
+ "9323dc260548ed0e",
207
+ "b4772132"
208
+ ]
209
+ },
210
+ {
211
+ "outboundTxnName": "WebTransaction/Custom/txn5",
212
+ "expectedOutboundPayload": [
213
+ "9323dc260548ed0e",
214
+ false,
215
+ "9323dc260548ed0e",
216
+ "51a1a337"
217
+ ]
218
+ },
219
+ {
220
+ "outboundTxnName": "WebTransaction/Custom/txn6",
221
+ "expectedOutboundPayload": [
222
+ "9323dc260548ed0e",
223
+ false,
224
+ "9323dc260548ed0e",
225
+ "77b5cb70"
226
+ ]
227
+ },
228
+ {
229
+ "outboundTxnName": "WebTransaction/Custom/txn7",
230
+ "expectedOutboundPayload": [
231
+ "9323dc260548ed0e",
232
+ false,
233
+ "9323dc260548ed0e",
234
+ "8a842c7f"
235
+ ]
236
+ },
237
+ {
238
+ "outboundTxnName": "WebTransaction/Custom/txn8",
239
+ "expectedOutboundPayload": [
240
+ "9323dc260548ed0e",
241
+ false,
242
+ "9323dc260548ed0e",
243
+ "b968edb8"
244
+ ]
245
+ },
246
+ {
247
+ "outboundTxnName": "WebTransaction/Custom/txn9",
248
+ "expectedOutboundPayload": [
249
+ "9323dc260548ed0e",
250
+ false,
251
+ "9323dc260548ed0e",
252
+ "2691f90e"
253
+ ]
254
+ },
255
+ {
256
+ "outboundTxnName": "WebTransaction/Custom/txn10",
257
+ "expectedOutboundPayload": [
258
+ "9323dc260548ed0e",
259
+ false,
260
+ "9323dc260548ed0e",
261
+ "b46aec87"
262
+ ]
263
+ },
264
+ {
265
+ "outboundTxnName": "WebTransaction/Custom/txn11",
266
+ "expectedOutboundPayload": [
267
+ "9323dc260548ed0e",
268
+ false,
269
+ "9323dc260548ed0e",
270
+ "10bb3bf3"
271
+ ]
272
+ }
273
+ ],
274
+ "expectedIntrinsicFields": {
275
+ "nr.guid": "9323dc260548ed0e",
276
+ "nr.tripId": "9323dc260548ed0e",
277
+ "nr.pathHash": "3b0939af",
278
+ "nr.alternatePathHashes": "0d932b2b,2691f90e,51a1a337,77b5cb70,8a842c7f,93fb4310,a67c2da4,b46aec87,b4772132,b968edb8"
279
+ },
280
+ "nonExpectedIntrinsicFields": [
281
+ "nr.referringTransactionGuid",
282
+ "nr.referringPathHash"
283
+ ]
284
+ },
285
+ {
286
+ "name": "new_cat_with_many_calls_out",
287
+ "appName": "testAppName",
288
+ "transactionName": "WebTransaction/Custom/testTxnName",
289
+ "transactionGuid": "9323dc260548ed0e",
290
+ "inboundPayload": null,
291
+ "outboundRequests": [
292
+ {
293
+ "outboundTxnName": "WebTransaction/Custom/txn1",
294
+ "expectedOutboundPayload": [
295
+ "9323dc260548ed0e",
296
+ false,
297
+ "9323dc260548ed0e",
298
+ "93fb4310"
299
+ ]
300
+ },
301
+ {
302
+ "outboundTxnName": "WebTransaction/Custom/txn1",
303
+ "expectedOutboundPayload": [
304
+ "9323dc260548ed0e",
305
+ false,
306
+ "9323dc260548ed0e",
307
+ "93fb4310"
308
+ ]
309
+ },
310
+ {
311
+ "outboundTxnName": "WebTransaction/Custom/txn1",
312
+ "expectedOutboundPayload": [
313
+ "9323dc260548ed0e",
314
+ false,
315
+ "9323dc260548ed0e",
316
+ "93fb4310"
317
+ ]
318
+ },
319
+ {
320
+ "outboundTxnName": "WebTransaction/Custom/txn1",
321
+ "expectedOutboundPayload": [
322
+ "9323dc260548ed0e",
323
+ false,
324
+ "9323dc260548ed0e",
325
+ "93fb4310"
326
+ ]
327
+ },
328
+ {
329
+ "outboundTxnName": "WebTransaction/Custom/txn1",
330
+ "expectedOutboundPayload": [
331
+ "9323dc260548ed0e",
332
+ false,
333
+ "9323dc260548ed0e",
334
+ "93fb4310"
335
+ ]
336
+ },
337
+ {
338
+ "outboundTxnName": "WebTransaction/Custom/txn1",
339
+ "expectedOutboundPayload": [
340
+ "9323dc260548ed0e",
341
+ false,
342
+ "9323dc260548ed0e",
343
+ "93fb4310"
344
+ ]
345
+ },
346
+ {
347
+ "outboundTxnName": "WebTransaction/Custom/txn1",
348
+ "expectedOutboundPayload": [
349
+ "9323dc260548ed0e",
350
+ false,
351
+ "9323dc260548ed0e",
352
+ "93fb4310"
353
+ ]
354
+ },
355
+ {
356
+ "outboundTxnName": "WebTransaction/Custom/txn1",
357
+ "expectedOutboundPayload": [
358
+ "9323dc260548ed0e",
359
+ false,
360
+ "9323dc260548ed0e",
361
+ "93fb4310"
362
+ ]
363
+ },
364
+ {
365
+ "outboundTxnName": "WebTransaction/Custom/txn1",
366
+ "expectedOutboundPayload": [
367
+ "9323dc260548ed0e",
368
+ false,
369
+ "9323dc260548ed0e",
370
+ "93fb4310"
371
+ ]
372
+ },
373
+ {
374
+ "outboundTxnName": "WebTransaction/Custom/txn1",
375
+ "expectedOutboundPayload": [
376
+ "9323dc260548ed0e",
377
+ false,
378
+ "9323dc260548ed0e",
379
+ "93fb4310"
380
+ ]
381
+ },
382
+ {
383
+ "outboundTxnName": "WebTransaction/Custom/txn1",
384
+ "expectedOutboundPayload": [
385
+ "9323dc260548ed0e",
386
+ false,
387
+ "9323dc260548ed0e",
388
+ "93fb4310"
389
+ ]
390
+ },
391
+ {
392
+ "outboundTxnName": "WebTransaction/Custom/txn2",
393
+ "expectedOutboundPayload": [
394
+ "9323dc260548ed0e",
395
+ false,
396
+ "9323dc260548ed0e",
397
+ "a67c2da4"
398
+ ]
399
+ }
400
+ ],
401
+ "expectedIntrinsicFields": {
402
+ "nr.guid": "9323dc260548ed0e",
403
+ "nr.tripId": "9323dc260548ed0e",
404
+ "nr.pathHash": "3b0939af",
405
+ "nr.alternatePathHashes": "93fb4310,a67c2da4"
406
+ },
407
+ "nonExpectedIntrinsicFields": [
408
+ "nr.referringTransactionGuid",
409
+ "nr.referringPathHash"
410
+ ]
411
+ },
412
+ {
413
+ "name": "new_cat_with_referring_info_and_call_out",
414
+ "appName": "testAppName",
415
+ "transactionName": "WebTransaction/Custom/testTxnName",
416
+ "transactionGuid": "9323dc260548ed0e",
417
+ "inboundPayload": [
418
+ "b854df4feb2b1f06",
419
+ false,
420
+ "7e249074f277923d",
421
+ "5d2957be"
422
+ ],
423
+ "outboundRequests": [
424
+ {
425
+ "outboundTxnName": "WebTransaction/Custom/otherTxnName",
426
+ "expectedOutboundPayload": [
427
+ "9323dc260548ed0e",
428
+ false,
429
+ "7e249074f277923d",
430
+ "4b9a0289"
431
+ ]
432
+ }
433
+ ],
434
+ "expectedIntrinsicFields": {
435
+ "nr.guid": "9323dc260548ed0e",
436
+ "nr.tripId": "7e249074f277923d",
437
+ "nr.pathHash": "815b96d3",
438
+ "nr.alternatePathHashes": "4b9a0289",
439
+ "nr.referringTransactionGuid": "b854df4feb2b1f06",
440
+ "nr.referringPathHash": "5d2957be"
441
+ },
442
+ "nonExpectedIntrinsicFields": []
443
+ },
444
+ {
445
+ "name": "new_cat_missing_path_hash",
446
+ "appName": "testAppName",
447
+ "transactionName": "WebTransaction/Custom/testTxnName",
448
+ "transactionGuid": "9323dc260548ed0e",
449
+ "inboundPayload": [
450
+ "b854df4feb2b1f06",
451
+ false,
452
+ "7e249074f277923d"
453
+ ],
454
+ "expectedIntrinsicFields": {
455
+ "nr.guid": "9323dc260548ed0e",
456
+ "nr.tripId": "7e249074f277923d",
457
+ "nr.pathHash": "3b0939af",
458
+ "nr.referringTransactionGuid": "b854df4feb2b1f06"
459
+ },
460
+ "nonExpectedIntrinsicFields": [
461
+ "nr.alternatePathHashes",
462
+ "nr.referringPathHash"
463
+ ]
464
+ },
465
+ {
466
+ "name": "new_cat_null_path_hash",
467
+ "appName": "testAppName",
468
+ "transactionName": "WebTransaction/Custom/testTxnName",
469
+ "transactionGuid": "9323dc260548ed0e",
470
+ "inboundPayload": [
471
+ "b854df4feb2b1f06",
472
+ false,
473
+ "7e249074f277923d",
474
+ null
475
+ ],
476
+ "expectedIntrinsicFields": {
477
+ "nr.guid": "9323dc260548ed0e",
478
+ "nr.tripId": "7e249074f277923d",
479
+ "nr.pathHash": "3b0939af",
480
+ "nr.referringTransactionGuid": "b854df4feb2b1f06"
481
+ },
482
+ "nonExpectedIntrinsicFields": [
483
+ "nr.alternatePathHashes",
484
+ "nr.referringPathHash"
485
+ ]
486
+ },
487
+ {
488
+ "name": "new_cat_malformed_path_hash",
489
+ "appName": "testAppName",
490
+ "transactionName": "WebTransaction/Custom/testTxnName",
491
+ "transactionGuid": "9323dc260548ed0e",
492
+ "inboundPayload": [
493
+ "b854df4feb2b1f06",
494
+ false,
495
+ "7e249074f277923d",
496
+ [
497
+ "scrambled",
498
+ "eggs"
499
+ ]
500
+ ],
501
+ "expectedIntrinsicFields": {},
502
+ "nonExpectedIntrinsicFields": [
503
+ "nr.guid",
504
+ "nr.tripId",
505
+ "nr.pathHash",
506
+ "nr.referringTransactionGuid",
507
+ "nr.referringPathHash",
508
+ "nr.alternatePathHashes"
509
+ ]
510
+ },
511
+ {
512
+ "name": "new_cat_corrupt_path_hash",
513
+ "appName": "testAppName",
514
+ "transactionName": "WebTransaction/Custom/testTxnName",
515
+ "transactionGuid": "9323dc260548ed0e",
516
+ "inboundPayload": [
517
+ "b854df4feb2b1f06",
518
+ false,
519
+ "7e249074f277923d",
520
+ "ZXYQEDABC"
521
+ ],
522
+ "expectedIntrinsicFields": {
523
+ "nr.guid": "9323dc260548ed0e",
524
+ "nr.tripId": "7e249074f277923d",
525
+ "nr.pathHash": "3b0939af",
526
+ "nr.referringTransactionGuid": "b854df4feb2b1f06",
527
+ "nr.referringPathHash": "ZXYQEDABC"
528
+ },
529
+ "nonExpectedIntrinsicFields": [
530
+ "nr.alternatePathHashes"
531
+ ]
532
+ },
533
+ {
534
+ "name": "new_cat_malformed_trip_id",
535
+ "appName": "testAppName",
536
+ "transactionName": "WebTransaction/Custom/testTxnName",
537
+ "transactionGuid": "9323dc260548ed0e",
538
+ "inboundPayload": [
539
+ "b854df4feb2b1f06",
540
+ false,
541
+ ["scrambled"],
542
+ "5d2957be"
543
+ ],
544
+ "expectedIntrinsicFields": {},
545
+ "nonExpectedIntrinsicFields": [
546
+ "nr.guid",
547
+ "nr.tripId",
548
+ "nr.pathHash",
549
+ "nr.referringTransactionGuid",
550
+ "nr.referringPathHash",
551
+ "nr.alternatePathHashes"
552
+ ]
553
+ },
554
+ {
555
+ "name": "new_cat_missing_trip_id",
556
+ "appName": "testAppName",
557
+ "transactionName": "WebTransaction/Custom/testTxnName",
558
+ "transactionGuid": "9323dc260548ed0e",
559
+ "inboundPayload": [
560
+ "b854df4feb2b1f06",
561
+ false
562
+ ],
563
+ "expectedIntrinsicFields": {
564
+ "nr.guid": "9323dc260548ed0e",
565
+ "nr.tripId": "9323dc260548ed0e",
566
+ "nr.pathHash": "3b0939af",
567
+ "nr.referringTransactionGuid": "b854df4feb2b1f06"
568
+ },
569
+ "nonExpectedIntrinsicFields": [
570
+ "nr.referringPathHash",
571
+ "nr.alternatePathHashes"
572
+ ]
573
+ },
574
+ {
575
+ "name": "new_cat_null_trip_id",
576
+ "appName": "testAppName",
577
+ "transactionName": "WebTransaction/Custom/testTxnName",
578
+ "transactionGuid": "9323dc260548ed0e",
579
+ "inboundPayload": [
580
+ "b854df4feb2b1f06",
581
+ false,
582
+ null
583
+ ],
584
+ "expectedIntrinsicFields": {
585
+ "nr.guid": "9323dc260548ed0e",
586
+ "nr.tripId": "9323dc260548ed0e",
587
+ "nr.pathHash": "3b0939af",
588
+ "nr.referringTransactionGuid": "b854df4feb2b1f06"
589
+ },
590
+ "nonExpectedIntrinsicFields": [
591
+ "nr.alternatePathHashes",
592
+ "nr.referringPathHash"
593
+ ]
594
+ }
595
+ ]