newrelic_rpm 3.9.3.241 → 3.9.4.245

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.gitignore +1 -0
  3. data/CHANGELOG +29 -0
  4. data/Rakefile +41 -0
  5. data/cert/cacert.pem +1176 -117
  6. data/lib/new_relic/agent/agent_logger.rb +14 -0
  7. data/lib/new_relic/agent/configuration/default_source.rb +88 -86
  8. data/lib/new_relic/agent/configuration/environment_source.rb +5 -1
  9. data/lib/new_relic/agent/configuration/high_security_source.rb +3 -1
  10. data/lib/new_relic/agent/configuration/yaml_source.rb +3 -3
  11. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +4 -0
  12. data/lib/new_relic/agent/method_tracer.rb +17 -2
  13. data/lib/new_relic/agent/new_relic_service.rb +21 -19
  14. data/lib/new_relic/agent/new_relic_service/json_marshaller.rb +8 -2
  15. data/lib/new_relic/agent/request_sampler.rb +9 -11
  16. data/lib/new_relic/version.rb +1 -1
  17. data/lib/tasks/config.html.erb +2 -2
  18. data/lib/tasks/config.rake +6 -6
  19. data/test/environments/lib/environments/runner.rb +4 -4
  20. data/test/environments/rails42/Gemfile +35 -0
  21. data/test/environments/rails42/Rakefile +11 -0
  22. data/test/environments/rails42/config/application.rb +18 -0
  23. data/test/environments/rails42/config/boot.rb +10 -0
  24. data/test/environments/rails42/config/database.yml +26 -0
  25. data/test/environments/rails42/config/environment.rb +6 -0
  26. data/test/environments/rails42/db/schema.rb +5 -0
  27. data/test/fixtures/cross_agent_tests/README.md +40 -1
  28. data/test/fixtures/cross_agent_tests/cat_map.json +305 -73
  29. data/test/fixtures/cross_agent_tests/sql_obfuscation/pathological/README.md +4 -0
  30. data/test/fixtures/cross_agent_tests/sql_obfuscation/{end_of_line_comments_with_quotes.obfuscated → pathological/end_of_line_comments_with_quotes.obfuscated} +0 -0
  31. data/test/fixtures/cross_agent_tests/sql_obfuscation/{end_of_line_comments_with_quotes.sql → pathological/end_of_line_comments_with_quotes.sql} +0 -0
  32. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_comments_and_quotes.obfuscated → pathological/mixed_comments_and_quotes.obfuscated} +0 -0
  33. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_comments_and_quotes.sql → pathological/mixed_comments_and_quotes.sql} +0 -0
  34. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_quotes_comments_and_newlines.obfuscated → pathological/mixed_quotes_comments_and_newlines.obfuscated} +0 -0
  35. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_quotes_comments_and_newlines.sql → pathological/mixed_quotes_comments_and_newlines.sql} +0 -0
  36. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_quotes_end_of_line_comments.obfuscated → pathological/mixed_quotes_end_of_line_comments.obfuscated} +0 -0
  37. data/test/fixtures/cross_agent_tests/sql_obfuscation/{mixed_quotes_end_of_line_comments.sql → pathological/mixed_quotes_end_of_line_comments.sql} +0 -0
  38. data/test/fixtures/cross_agent_tests/sql_obfuscation/{quote_delimiters_in_comments.obfuscated → pathological/quote_delimiters_in_comments.obfuscated} +0 -0
  39. data/test/fixtures/cross_agent_tests/sql_obfuscation/{quote_delimiters_in_comments.sql → pathological/quote_delimiters_in_comments.sql} +0 -0
  40. data/test/multiverse/suites/agent_only/cross_application_tracing_test.rb +9 -4
  41. data/test/multiverse/suites/rails/Envfile +6 -0
  42. data/test/multiverse/suites/rails/ignore_test.rb +7 -7
  43. data/test/multiverse/suites/rails/view_instrumentation_test.rb +13 -13
  44. data/test/new_relic/agent/configuration/environment_source_test.rb +8 -0
  45. data/test/new_relic/agent/configuration/yaml_source_test.rb +1 -1
  46. data/test/new_relic/agent/database/sql_obfuscation_test.rb +17 -8
  47. data/test/new_relic/agent/instrumentation/active_record_test.rb +50 -7
  48. data/test/new_relic/agent/new_relic_service_test.rb +17 -4
  49. data/test/new_relic/http_client_test_cases.rb +15 -5
  50. data/test/performance/lib/performance.rb +8 -0
  51. data/test/performance/lib/performance/baseline.rb +36 -0
  52. data/test/performance/lib/performance/baseline_compare_reporter.rb +82 -0
  53. data/test/performance/lib/performance/baseline_save_reporter.rb +24 -0
  54. data/test/performance/lib/performance/console_reporter.rb +7 -20
  55. data/test/performance/lib/performance/reporting.rb +36 -0
  56. data/test/performance/lib/performance/table.rb +105 -0
  57. data/test/performance/script/runner +26 -20
  58. data/test/performance/suites/marshalling.rb +12 -12
  59. data/test/script/path_hash.rb +1 -1
  60. metadata +25 -25
  61. metadata.gz.sig +0 -0
  62. data/cert/oldsite.pem +0 -28
  63. data/cert/site.pem +0 -27
  64. data/test/flaky_proxy/Gemfile +0 -3
  65. data/test/flaky_proxy/README.md +0 -140
  66. data/test/flaky_proxy/lib/flaky_proxy.rb +0 -23
  67. data/test/flaky_proxy/lib/flaky_proxy/connection.rb +0 -45
  68. data/test/flaky_proxy/lib/flaky_proxy/http_message.rb +0 -107
  69. data/test/flaky_proxy/lib/flaky_proxy/proxy.rb +0 -58
  70. data/test/flaky_proxy/lib/flaky_proxy/rule.rb +0 -72
  71. data/test/flaky_proxy/lib/flaky_proxy/rule_set.rb +0 -45
  72. data/test/flaky_proxy/lib/flaky_proxy/sequence.rb +0 -14
  73. data/test/flaky_proxy/lib/flaky_proxy/server.rb +0 -22
  74. data/test/flaky_proxy/script/flaky_proxy +0 -39
@@ -37,9 +37,23 @@ module NewRelic
37
37
  format_and_send(:debug, msgs, &blk)
38
38
  end
39
39
 
40
+ NUM_LOG_ONCE_KEYS = 1000
41
+
40
42
  def log_once(level, key, *msgs)
41
43
  return if already_logged.include?(key)
42
44
 
45
+ if already_logged.size >= NUM_LOG_ONCE_KEYS && key.kind_of?(String)
46
+ # The reason for preventing too many keys in `already_logged` is for
47
+ # memory concerns.
48
+ # The reason for checking the type of the key is that we always want
49
+ # to allow symbols to log, since there are very few of them.
50
+ # The assumption here is that you would NEVER pass dynamically-created
51
+ # symbols, because you would never create symbols dynamically in the
52
+ # first place, as that would already be a memory leak in most Rubies,
53
+ # even if we didn't hang on to them all here.
54
+ return
55
+ end
56
+
43
57
  already_logged[key] = true
44
58
  self.send(level, *msgs)
45
59
  end
@@ -240,7 +240,7 @@ module NewRelic
240
240
  :default => '',
241
241
  :public => true,
242
242
  :type => String,
243
- :description => "New Relic license key."
243
+ :description => 'Your New Relic <a href="/docs/accounts-partnerships/accounts/account-setup/license-key">license key</a>.'
244
244
  },
245
245
  :agent_enabled => {
246
246
  :default => DefaultSource.agent_enabled,
@@ -259,19 +259,19 @@ module NewRelic
259
259
  :default => DefaultSource.app_name,
260
260
  :public => true,
261
261
  :type => String,
262
- :description => "Semicolon delimited list of application names where metrics will be recorded in the dashboard (e.g. 'MyApplication' or 'MyAppStaging;Instance1')."
262
+ :description => 'Semicolon-delimited list of <a href="/docs/apm/new-relic-apm/installation-and-configuration/naming-your-application">application names</a> to which the agent will report metrics (e.g. \'MyApplication\' or \'MyAppStaging;Instance1\'). For more information, see <a href="/docs/apm/new-relic-apm/installation-and-configuration/naming-your-application">Naming your application</a>.'
263
263
  },
264
264
  :monitor_mode => {
265
265
  :default => DefaultSource.monitor_mode,
266
266
  :public => true,
267
267
  :type => Boolean,
268
- :description => 'Enable or disable transmission of data to the New Relic data collection service.'
268
+ :description => 'Enable or disable the transmission of data to the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>).'
269
269
  },
270
270
  :developer_mode => {
271
271
  :default => DefaultSource.developer_mode,
272
272
  :public => true,
273
273
  :type => Boolean,
274
- :description => "Enable or disable developer mode, a local analytics package built into the agent for rack applications. Access developer mode analytics by visiting '/newrelic' in your application."
274
+ :description => 'Enable or disable developer mode, a local analytics package built into the agent for rack applications. Access developer mode analytics by visiting <b>/newrelic</b> in your application.'
275
275
  },
276
276
  :developer => {
277
277
  :default => false,
@@ -289,28 +289,28 @@ module NewRelic
289
289
  :default => false,
290
290
  :public => true,
291
291
  :type => Boolean,
292
- :description => 'Enable or disable security features designed to protect data in an enterprise setting.'
292
+ :description => 'Enable or disable <a href="/docs/accounts-partnerships/accounts/security/high-security">high security mode</a>, a suite of security features designed to protect data in an enterprise setting.'
293
293
  },
294
294
  :ssl => {
295
295
  :default => true,
296
296
  :allow_nil => true,
297
297
  :public => true,
298
298
  :type => Boolean,
299
- :description => "Enable or disable SSL for transmissions to the New Relic data collection service. Default is true starting in version 3.5.6."
299
+ :description => 'Enable or disable SSL for transmissions to the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>). Defaults to true in versions 3.5.6 and higher.'
300
300
  },
301
301
  :proxy_host => {
302
302
  :default => nil,
303
303
  :allow_nil => true,
304
304
  :public => true,
305
305
  :type => String,
306
- :description => 'Host for proxy server.'
306
+ :description => 'Defines a host for communicating with New Relic via a proxy server.'
307
307
  },
308
308
  :proxy_port => {
309
309
  :default => nil,
310
310
  :allow_nil => true,
311
311
  :public => true,
312
312
  :type => Fixnum,
313
- :description => 'Port for proxy server.'
313
+ :description => 'Defines a port for communicating with New Relic via a proxy server.'
314
314
  },
315
315
  :proxy_user => {
316
316
  :default => nil,
@@ -318,7 +318,7 @@ module NewRelic
318
318
  :public => true,
319
319
  :type => String,
320
320
  :local_only => true,
321
- :description => 'User for proxy server.'
321
+ :description => 'Defines a user for communicating with New Relic via a proxy server.'
322
322
  },
323
323
  :proxy_pass => {
324
324
  :default => nil,
@@ -326,19 +326,19 @@ module NewRelic
326
326
  :public => true,
327
327
  :type => String,
328
328
  :local_only => true,
329
- :description => 'Password for proxy server.'
329
+ :description => 'Defines a password for communicating with New Relic via a proxy server.'
330
330
  },
331
331
  :capture_params => {
332
332
  :default => false,
333
333
  :public => true,
334
334
  :type => Boolean,
335
- :description => 'Enable or disable capturing and attachment of HTTP request parameters to transaction traces and traced errors.'
335
+ :description => 'Enable or disable the capture of HTTP request parameters to be attached to transaction traces and traced errors.'
336
336
  },
337
337
  :config_path => {
338
338
  :default => DefaultSource.config_path,
339
339
  :public => true,
340
340
  :type => String,
341
- :description => "Path to newrelic.yml. When omitted the agent will check (in order) 'config/newrelic.yml', 'newrelic.yml', $HOME/.newrelic/newrelic.yml' and $HOME/newrelic.yml."
341
+ :description => 'Path to <b>newrelic.yml</b>. When omitted the agent will check (in order) <b>config/newrelic.yml</b>, <b>newrelic.yml</b>, <b>$HOME/.newrelic/newrelic.yml</b> and <b>$HOME/newrelic.yml</b>.'
342
342
  },
343
343
  :config_search_paths => {
344
344
  :default => DefaultSource.config_search_paths,
@@ -362,19 +362,19 @@ module NewRelic
362
362
  :default => 'Rails::Console',
363
363
  :public => true,
364
364
  :type => String,
365
- :description => "Comma delimited list of constants whose presence should prevent the agent from automatically starting (e.g. 'Rails::Console, UninstrumentedBackgroundJob')."
365
+ :description => 'Defines a comma-delimited list of constants. When these constants are present, the agent will not start automatically (e.g. \'Rails::Console, UninstrumentedBackgroundJob\').'
366
366
  },
367
367
  :'autostart.blacklisted_executables' => {
368
368
  :default => 'irb,rspec',
369
369
  :public => true,
370
370
  :type => String,
371
- :description => "Comma delimited list of executables that should not be instrumented by the agent (e.g. 'rake,my_ruby_script.rb')."
371
+ :description => 'Defines a comma-delimited list of executables that should not be instrumented by the agent (e.g. \'rake,my_ruby_script.rb\').'
372
372
  },
373
373
  :'autostart.blacklisted_rake_tasks' => {
374
374
  :default => AUTOSTART_BLACKLISTED_RAKE_TASKS,
375
375
  :public => true,
376
376
  :type => String,
377
- :description => "Comma delimited list of rake tasks that should not be instrumented by the agent (e.g. 'assets:precompile,db:migrate')."
377
+ :description => 'Defines a comma-delimited list of rake tasks that should not be instrumented by the agent (e.g. \'assets:precompile,db:migrate\').'
378
378
  },
379
379
  :'profiling.available' => {
380
380
  :default => DefaultSource.profiling_available,
@@ -387,7 +387,7 @@ module NewRelic
387
387
  :public => true,
388
388
  :type => Float,
389
389
  :deprecated => true,
390
- :description => 'As of Ruby Agent version 3.5.0, setting your Apdex T has been moved to the New Relic UI. Threshold at which New Relic will begin alerting. By default the agent will send alerts when the Apdex score drops below 0.5, or when more than half of users are experiencing degraded application performance.'
390
+ :description => 'In versions 3.5.0 and higher, <a href="/docs/apm/new-relic-apm/apdex/changing-your-apdex-settings">set your Apdex T via the New Relic UI</a>. In addition to determining your <a href="/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction">Apdex score</a>, Apdex T is the threshold at which New Relic will begin alerting. By default the agent will send alerts when the Apdex score drops below 0.5, or when more than half of users are experiencing degraded application performance.'
391
391
  },
392
392
  :monitor_daemons => {
393
393
  :default => false,
@@ -399,13 +399,13 @@ module NewRelic
399
399
  :default => DefaultSource.strip_exception_messages_enabled,
400
400
  :public => true,
401
401
  :type => Boolean,
402
- :description => 'Enable or disable the stripping of messages from all exceptions that are not specified in the whitelist. Enabled automatically in high security mode.'
402
+ :description => 'Defines whether the agent should strip messages from all exceptions that are not specified in the whitelist. Enabled automatically in <a href="/docs/accounts-partnerships/accounts/security/high-security">high security mode</a>.'
403
403
  },
404
404
  :'strip_exception_messages.whitelist' => {
405
405
  :default => '',
406
406
  :public => true,
407
407
  :type => String,
408
- :description => "Comma delimited list of exceptions that should not have their messages stripped when strip_exception_messages is enabled (e.g. 'ImportantException, PreserveMessageException')."
408
+ :description => 'Defines a comma-delimited list of exceptions from which the agent will not strip messages when <a href="#strip_exception_messages.enabled">strip_exception_messages</a> is enabled (such as \'ImportantException, PreserveMessageException\').'
409
409
  },
410
410
  :host => {
411
411
  :default => 'collector.newrelic.com',
@@ -441,7 +441,7 @@ module NewRelic
441
441
  :default => true,
442
442
  :public => true,
443
443
  :type => Boolean,
444
- :description => 'Enable or disable the exit handler that sends data to the New Relic data collection service before shutting down.'
444
+ :description => 'Enable or disable the exit handler that sends data to the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>) before shutting down.'
445
445
  },
446
446
  :post_size_limit => {
447
447
  :default => 2 * 1024 * 1024, # 2MB
@@ -453,7 +453,7 @@ module NewRelic
453
453
  :default => 2 * 60, # 2 minutes
454
454
  :public => true,
455
455
  :type => Fixnum,
456
- :description => 'Maximum number of seconds to try and contact the New Relic data collection service.'
456
+ :description => 'Maximum number of seconds to attempt to contact the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>).'
457
457
  },
458
458
  :force_send => {
459
459
  :default => false,
@@ -471,7 +471,7 @@ module NewRelic
471
471
  :default => false,
472
472
  :public => true,
473
473
  :type => Boolean,
474
- :description => 'Enable or disable synchronizing Resque job forking with New Relic\'s harvest thread. Defaulted to false. This helps prevent Resque jobs from deadlocking, but pauses starting new jobs during harvest.'
474
+ :description => 'Enable or disable synchronizing Resque job forking with New Relic\'s harvest thread. The default is <code>false</code>. This helps prevent Resque jobs from deadlocking, but prevents New Relic from starting new jobs during harvest.'
475
475
  },
476
476
  :data_report_period => {
477
477
  :default => 60,
@@ -509,61 +509,61 @@ module NewRelic
509
509
  :default => 'newrelic_agent.log',
510
510
  :public => true,
511
511
  :type => String,
512
- :description => 'Filename of the agent log file.'
512
+ :description => 'Defines a name for the log file.'
513
513
  },
514
514
  :log_file_path => {
515
515
  :default => 'log/',
516
516
  :public => true,
517
517
  :type => String,
518
- :description => 'Path to the agent log file, excluding the filename.'
518
+ :description => 'Defines a path to the agent log file, excluding the filename.'
519
519
  },
520
520
  :'audit_log.enabled' => {
521
521
  :default => false,
522
522
  :public => true,
523
523
  :type => Boolean,
524
- :description => 'Enable or disable the audit log, a log of communications with the New Relic data collection service.'
524
+ :description => 'Enable or disable the audit log, a log of communications with the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>).'
525
525
  },
526
526
  :'audit_log.path' => {
527
527
  :default => DefaultSource.audit_log_path,
528
528
  :public => true,
529
529
  :type => String,
530
- :description => 'Path to the audit log file (including the filename).'
530
+ :description => 'Specifies a path to the audit log file (including the filename).'
531
531
  },
532
532
  :disable_samplers => {
533
533
  :default => false,
534
534
  :public => true,
535
535
  :type => Boolean,
536
- :description => 'Enable or disable the collection of sampler metrics, metrics that are not event based (e.g. CPU time or memory usage).'
536
+ :description => 'Enable or disable the collection of sampler metrics. Sampler metrics are metrics that are not event-based (such as CPU time or memory usage).'
537
537
  },
538
538
  :disable_resque => {
539
539
  :default => false,
540
540
  :public => true,
541
541
  :type => Boolean,
542
- :description => 'Enable or disable resque instrumentation.'
542
+ :description => 'Enable or disable <a href="/docs/agents/ruby-agent/background-jobs/resque-instrumentation">Resque instrumentation</a>.'
543
543
  },
544
544
  :disable_sidekiq => {
545
545
  :default => false,
546
546
  :public => true,
547
547
  :type => Boolean,
548
- :description => 'Enable or disable sidekiq instrumentation.'
548
+ :description => 'Enable or disable <a href="/docs/agents/ruby-agent/background-jobs/sidekiq-instrumentation">Sidekiq instrumentation</a>.'
549
549
  },
550
550
  :disable_dj => {
551
551
  :default => false,
552
552
  :public => true,
553
553
  :type => Boolean,
554
- :description => 'Enable or disable delayed job instrumentation.'
554
+ :description => 'Enable or disable <a href="/docs/agents/ruby-agent/background-jobs/delayedjob">Delayed::Job instrumentation</a>.'
555
555
  },
556
556
  :disable_sinatra => {
557
557
  :default => false,
558
558
  :public => true,
559
559
  :type => Boolean,
560
- :description => 'Enable or disable sinatra instrumentation.'
560
+ :description => 'Enable or disable <a href="/docs/agents/ruby-agent/frameworks/sinatra-support">Sinatra instrumentation</a>.'
561
561
  },
562
562
  :disable_sinatra_auto_middleware => {
563
563
  :default => false,
564
564
  :public => true,
565
565
  :type => Boolean,
566
- :description => 'Enable or disable agent middleware for sinatra. This middleware is responsible for instrumenting advanced feature support for Sinatra; for example, cross application tracing, page load timing (sometimes referred to as real user monitoring or RUM), and error collection.'
566
+ :description => 'Enable or disable agent middleware for Sinatra. This middleware is responsible for Sinatra advanced feature support; for example, cross application tracing, page load timing (sometimes referred to as real user monitoring or RUM), and error collection.'
567
567
  },
568
568
  :disable_view_instrumentation => {
569
569
  :default => false,
@@ -575,7 +575,7 @@ module NewRelic
575
575
  :default => false,
576
576
  :public => true,
577
577
  :type => Boolean,
578
- :description => 'Enable or disable removal of newrelic_rpm from backtraces.'
578
+ :description => 'Defines whether the agent will remove <code>newrelic_rpm</code> from backtraces.'
579
579
  },
580
580
  :disable_harvest_thread => {
581
581
  :default => false,
@@ -605,67 +605,67 @@ module NewRelic
605
605
  :default => false,
606
606
  :public => true,
607
607
  :type => Boolean,
608
- :description => 'Enable or disable usage of GC::Profiler to measure time spent in garbage collection'
608
+ :description => 'Enable or disable the use of GC::Profiler to measure time spent in garbage collection'
609
609
  },
610
610
  :'sidekiq.capture_params' => {
611
611
  :default => false,
612
612
  :public => true,
613
613
  :type => Boolean,
614
- :description => 'Enable or disable capturing job arguments for transaction traces and traced errors in Sidekiq.'
614
+ :description => 'Enable or disable the capture of job arguments for transaction traces and traced errors in Sidekiq.'
615
615
  },
616
616
  :'resque.capture_params' => {
617
617
  :default => false,
618
618
  :public => true,
619
619
  :type => Boolean,
620
- :description => 'Enable or disable capturing job arguments for transaction traces and traced errors in Resque.'
620
+ :description => 'Enable or disable the capture of job arguments for transaction traces and traced errors in Resque.'
621
621
  },
622
622
  :capture_memcache_keys => {
623
623
  :default => false,
624
624
  :public => true,
625
625
  :type => Boolean,
626
- :description => 'Enable or disable capturing and attachment of memcache keys to transaction traces.'
626
+ :description => 'Enable or disable the capture of memcache keys from transaction traces.'
627
627
  },
628
628
  :'transaction_tracer.enabled' => {
629
629
  :default => true,
630
630
  :public => true,
631
631
  :type => Boolean,
632
- :description => 'Enable or disable transaction tracer.'
632
+ :description => 'Enable or disable <a href="/docs/apm/traces/transaction-traces/transaction-traces">transaction traces</a>.'
633
633
  },
634
634
  :'transaction_tracer.transaction_threshold' => {
635
635
  :default => DefaultSource.transaction_tracer_transaction_threshold,
636
636
  :public => true,
637
637
  :type => Float,
638
- :description => 'Transaction traces will be generated for transactions that exceed this threshold. Valid values are any float value, or (default) `apdex_f`, which will use the threshold for an dissatisfying Apdex controller action - four times the Apdex T value.'
638
+ :description => 'The agent will collect traces for transactions that exceed this time threshold (in seconds). Specify a float value or <code><a href="/docs/apm/new-relic-apm/getting-started/glossary#apdex_f">apdex_f</a></code>.'
639
639
  },
640
640
  :'transaction_tracer.record_sql' => {
641
641
  :default => 'obfuscated',
642
642
  :public => true,
643
643
  :type => String,
644
- :description => "Obfuscation level for sql queries reported in transaction trace segments (e.g. 'obfuscated', 'raw', 'none')."
644
+ :description => 'Obfuscation level for SQL queries reported in transaction trace segments. Valid options are <code>obfuscated</code>, <code>raw</code>, <code>none</code>.'
645
645
  },
646
646
  :'transaction_tracer.capture_attributes' => {
647
647
  :default => true,
648
648
  :public => true,
649
649
  :type => Boolean,
650
- :description => 'Enable or disable collection of custom attributes on transaction traces.'
650
+ :description => 'Enable or disable collection of <a href="/docs/apm/other-features/attributes/collecting-custom-attributes">custom attributes</a> on transaction traces.'
651
651
  },
652
652
  :'transaction_tracer.explain_threshold' => {
653
653
  :default => 0.5,
654
654
  :public => true,
655
655
  :type => Float,
656
- :description => 'Explain plans will be generated and included in transaction trace segments with durations that exceed this threshold. Relevant only when `explain_enabled` is true.'
656
+ :description => 'Threshold (in seconds) above which the agent will collect explain plans. Relevant only when <code><a href="#transaction_tracer.explain_enabled">explain_enabled</a></code> is true.'
657
657
  },
658
658
  :'transaction_tracer.explain_enabled' => {
659
659
  :default => true,
660
660
  :public => true,
661
661
  :type => Boolean,
662
- :description => 'Enable or disable the generation and inclusion of explain queries in transaction trace segments.'
662
+ :description => 'Enable or disable the collection of explain plans.'
663
663
  },
664
664
  :'transaction_tracer.stack_trace_threshold' => {
665
665
  :default => 0.5,
666
666
  :public => true,
667
667
  :type => Float,
668
- :description => 'Stack traces will be included in transaction trace segments with durations that exceed this threshold.'
668
+ :description => 'Stack traces will be included in transaction trace segments when their duration exceeds this threshold.'
669
669
  },
670
670
  :'transaction_tracer.limit_segments' => {
671
671
  :default => 4000,
@@ -677,55 +677,57 @@ module NewRelic
677
677
  :default => false,
678
678
  :public => true,
679
679
  :type => Boolean,
680
- :description => 'Enable or disable sequel instrumentation.'
680
+ :description => 'Enable or disable <a href="/docs/agents/ruby-agent/frameworks/sequel-instrumentation">Sequel instrumentation</a>.'
681
681
  },
682
682
  :disable_database_instrumentation => {
683
683
  :default => false,
684
684
  :public => true,
685
685
  :type => Boolean,
686
- :description => 'Enable or disable sequel instrumentation.'
686
+ :deprecated => true,
687
+ :description => 'Enable or disable Sequel instrumentation. This option is deprecated; instead, use <a href="/docs/agents/ruby-agent/installation-and-configuration/ruby-agent-configuration#disable_sequel_instrumentation"><code>disable_sequel_instrumentation</code></a>'
687
688
  },
688
689
  :disable_mongo => {
689
- :default => false,
690
- :public => true,
691
- :type => Boolean,
692
- :description => 'Controls whether instrumentation for the mongo gem will be installed by the agent.'
690
+ :default => false,
691
+ :public => true,
692
+ :type => Boolean,
693
+ :dynamic_name => true,
694
+ :description => 'Defines whether the agent will install <a href="/docs/agents/ruby-agent/frameworks/mongo-instrumentation">instrumentation for the Mongo gem</a>.'
693
695
  },
694
696
  :'slow_sql.enabled' => {
695
697
  :default => DefaultSource.slow_sql_enabled,
696
698
  :public => true,
697
699
  :type => Boolean,
698
- :description => 'Enable or disable collection of slow sql queries.'
700
+ :description => 'Enable or disable collection of slow SQL queries.'
699
701
  },
700
702
  :'slow_sql.explain_threshold' => {
701
703
  :default => DefaultSource.slow_sql_explain_threshold,
702
704
  :public => true,
703
705
  :type => Float,
704
- :description => 'Explain plans will be generated and included in slow sql queries with durations that exceed this threshold.'
706
+ :description => 'Defines a duration threshold, over which the agent will collect explain plans in slow SQL queries.'
705
707
  },
706
708
  :'slow_sql.explain_enabled' => {
707
709
  :default => DefaultSource.slow_sql_explain_enabled,
708
710
  :public => true,
709
711
  :type => Boolean,
710
- :description => 'Enable or disable the generation and inclusion of explain plans in slow sql queries.'
712
+ :description => 'Enable or disable the collection of explain plans in slow SQL queries.'
711
713
  },
712
714
  :'slow_sql.record_sql' => {
713
715
  :default => DefaultSource.slow_sql_record_sql,
714
716
  :public => true,
715
717
  :type => String,
716
- :description => "Obfuscation level for slow sql queries (e.g. 'obfuscated', 'raw', 'none')."
718
+ :description => 'Defines an obfuscation level for slow SQL queries. Valid options are <code>obfuscated</code>, <code>raw</code>, <code>none</code>).'
717
719
  },
718
720
  :'mongo.capture_queries' => {
719
721
  :default => true,
720
722
  :public => true,
721
723
  :type => Boolean,
722
- :description => "Enable or disable capturing Mongo queries in transaction traces."
724
+ :description => 'Enable or disable capturing Mongo queries in transaction traces.'
723
725
  },
724
726
  :'mongo.obfuscate_queries' => {
725
727
  :default => true,
726
728
  :public => true,
727
729
  :type => Boolean,
728
- :description => "Enable or disable obfuscation of Mongo queries in transaction traces."
730
+ :description => 'Enable or disable obfuscation of Mongo queries in transaction traces.'
729
731
  },
730
732
  :'error_collector.enabled' => {
731
733
  :default => true,
@@ -743,7 +745,7 @@ module NewRelic
743
745
  :default => 'ActionController::RoutingError,Sinatra::NotFound',
744
746
  :public => true,
745
747
  :type => String,
746
- :description => 'Comma delimited list of error classes that should be ignored.'
748
+ :description => 'Specifies a comma-delimited list of error classes that the agent should ignore.'
747
749
  },
748
750
  :'rum.enabled' => {
749
751
  :default => true,
@@ -791,19 +793,19 @@ module NewRelic
791
793
  :default => false,
792
794
  :public => true,
793
795
  :type => Boolean,
794
- :description => 'Include custom attributes in real user monitoring script in outgoing responses.'
796
+ :description => 'Forward custom attributes to Browser for <a href="/docs/insights/new-relic-insights/decorating-events/insights-custom-attributes#forwarding-attributes">collection by New Relic Insights</a>.'
795
797
  },
796
798
  :'browser_monitoring.loader' => {
797
799
  :default => DefaultSource.browser_monitoring_loader,
798
800
  :public => private,
799
801
  :type => String,
800
- :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation'
802
+ :description => 'Type of JavaScript agent loader to use for browser monitoring instrumentation.'
801
803
  },
802
804
  :'browser_monitoring.loader_version' => {
803
805
  :default => '',
804
806
  :public => private,
805
807
  :type => String,
806
- :description => 'Version of JavaScript agent loader (returned from the New Relic data collection services)'
808
+ :description => 'Version of JavaScript agent loader (returned from the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>).)'
807
809
  },
808
810
  :'browser_monitoring.debug' => {
809
811
  :default => false,
@@ -847,14 +849,14 @@ module NewRelic
847
849
  :default => true,
848
850
  :public => true,
849
851
  :type => Boolean,
850
- :description => 'Enable or disable cross application tracing.'
852
+ :description => 'Enable or disable <a href="/docs/apm/traces/cross-application-traces/cross-application-traces">cross application tracing</a>.'
851
853
  },
852
854
  :cross_application_tracing => {
853
855
  :default => nil,
854
856
  :allow_nil => true,
855
857
  :public => false,
856
858
  :type => Boolean,
857
- :description => 'Enable or disable cross-application tracing.'
859
+ :description => 'Enable or disable <a href="/docs/apm/traces/cross-application-traces/cross-application-traces">cross application tracing</a>.'
858
860
  },
859
861
  :encoding_key => {
860
862
  :default => '',
@@ -878,7 +880,7 @@ module NewRelic
878
880
  :default => true,
879
881
  :public => true,
880
882
  :type => Boolean,
881
- :description => 'Enable or disable X-Ray sessions.'
883
+ :description => 'Enable or disable <a href="/docs/apm/transactions-menu/x-ray-sessions/x-ray-sessions">X-Ray sessions</a>.'
882
884
  },
883
885
  :'xray_session.allow_traces' => {
884
886
  :default => true,
@@ -908,25 +910,25 @@ module NewRelic
908
910
  :default => DefaultSource.marshaller,
909
911
  :public => true,
910
912
  :type => String,
911
- :description => 'Marshaller to use when marshalling data for transmission to the New Relic data collection service (e.g json, pruby).'
913
+ :description => 'Specifies a marshaller for transmitting data to the New Relic <a href="/docs/apm/new-relic-apm/getting-started/glossary#collector">collector</a>) (e.g json, pruby).'
912
914
  },
913
915
  :'analytics_events.enabled' => {
914
916
  :default => true,
915
917
  :public => true,
916
918
  :type => Boolean,
917
- :description => 'Enable or disable the analytics event sampling.'
919
+ :description => 'Enable or disable analytics event sampling.'
918
920
  },
919
921
  :'analytics_events.max_samples_stored' => {
920
922
  :default => 1200,
921
923
  :public => true,
922
924
  :type => Fixnum,
923
- :description => 'Maximum number of request events recorded by the analytics event sampling in a single harvest.'
925
+ :description => 'Defines the maximum number of request events reported from a single harvest.'
924
926
  },
925
927
  :'analytics_events.capture_attributes' => {
926
928
  :default => true,
927
929
  :public => true,
928
930
  :type => Boolean,
929
- :description => 'Include custom attributes in analytics event data.'
931
+ :description => 'Include <a href="/docs/insights/new-relic-insights/decorating-events/insights-custom-attributes">custom attributes</a> in analytics event data.'
930
932
  },
931
933
  :restart_thread_in_children => {
932
934
  :default => true,
@@ -945,97 +947,90 @@ module NewRelic
945
947
  :public => true,
946
948
  :type => Boolean,
947
949
  :dynamic_name => true,
948
- :description => 'Controls whether the Ruby VM sampler is enabled. This sampler periodically gathers performance measurements from the Ruby VM.'
950
+ :description => 'Defines whether the agent will <a href="/docs/agents/ruby-agent/features/ruby-vm-measurements">sample performance measurements from the Ruby VM</a>.'
949
951
  },
950
952
  :disable_memory_sampler => {
951
953
  :default => false,
952
954
  :public => true,
953
955
  :type => Boolean,
954
956
  :dynamic_name => true,
955
- :description => 'Controls whether the memory sampler is enabled. This sampler periodically measures the memory usage of the host process.'
957
+ :description => 'Defines whether the agent will sample the memory usage of the host process.'
956
958
  },
957
959
  :disable_cpu_sampler => {
958
960
  :default => false,
959
961
  :public => true,
960
962
  :type => Boolean,
961
963
  :dynamic_name => true,
962
- :description => 'Controls whether the CPU sampler is enabled. This sampler periodically samples the CPU usage of the host process.'
964
+ :description => 'Defines whether the agent will sample the CPU usage of the host process.'
963
965
  },
964
966
  :disable_delayed_job_sampler => {
965
967
  :default => false,
966
968
  :public => true,
967
969
  :type => Boolean,
968
970
  :dynamic_name => true,
969
- :description => 'Controls whether the Delayed Job sampler is enabled. This sampler periodically measures the depth of Delayed Job queues.'
971
+ :description => 'Defines whether the agent will measure the depth of Delayed Job queues.'
970
972
  },
971
973
  :disable_active_record_4 => {
972
974
  :default => false,
973
975
  :public => true,
974
976
  :type => Boolean,
975
977
  :dynamic_name => true,
976
- :description => 'Controls whether instrumentation for ActiveRecord 4 will be installed by the agent.'
978
+ :description => 'Defines whether the agent will install instrumentation for ActiveRecord 4.'
977
979
  },
978
980
  :disable_curb => {
979
981
  :default => false,
980
982
  :public => true,
981
983
  :type => Boolean,
982
984
  :dynamic_name => true,
983
- :description => 'Controls whether instrumentation for the curb gem will be installed by the agent.'
985
+ :description => 'Defines whether the agent will install instrumentation for the curb gem.'
984
986
  },
985
987
  :disable_excon => {
986
988
  :default => false,
987
989
  :public => true,
988
990
  :type => Boolean,
989
991
  :dynamic_name => true,
990
- :description => 'Controls whether instrumentation for the excon gem will be installed by the agent.'
992
+ :description => 'Defines whether the agent will install instrumentation for the excon gem.'
991
993
  },
992
994
  :disable_httpclient => {
993
995
  :default => false,
994
996
  :public => true,
995
997
  :type => Boolean,
996
998
  :dynamic_name => true,
997
- :description => 'Controls whether instrumentation for the httpclient gem will be installed by the agent.'
999
+ :description => 'Defines whether the agent will install instrumentation for the httpclient gem.'
998
1000
  },
999
1001
  :disable_net_http => {
1000
1002
  :default => false,
1001
1003
  :public => true,
1002
1004
  :type => Boolean,
1003
1005
  :dynamic_name => true,
1004
- :description => 'Controls whether instrumentation for Net::HTTP will be installed by the agent.'
1005
- },
1006
- :disable_mongo => {
1007
- :default => false,
1008
- :public => true,
1009
- :type => Boolean,
1010
- :dynamic_name => true,
1011
- :description => 'Controls whether instrumentation for the mongo gem will be installed by the agent.'
1006
+ :description => 'Defines whether the agent will install instrumentation for Net::HTTP.'
1012
1007
  },
1013
1008
  :disable_rack => {
1014
1009
  :default => false,
1015
1010
  :public => true,
1016
1011
  :type => Boolean,
1017
1012
  :dynamic_name => true,
1018
- :description => "Controls whether the agent will hook into Rack::Builder's to_app method in order to look for gems to instrument during application startup."
1013
+ :description => 'Defines whether the agent will hook into Rack::Builder\'s <code>to_app</code> method to find gems to instrument during application startup.'
1019
1014
  },
1020
1015
  :disable_rubyprof => {
1021
1016
  :default => false,
1022
1017
  :public => true,
1023
1018
  :type => Boolean,
1024
1019
  :dynamic_name => true,
1025
- :description => 'Controls whether the agent will make use of RubyProf in developer mode if it is present.'
1020
+ :description => 'Defines whether the agent will use RubyProf in developer mode (if RubyProf is installed).'
1026
1021
  },
1027
1022
  :disable_typhoeus => {
1028
1023
  :default => false,
1029
1024
  :public => true,
1030
1025
  :type => Boolean,
1031
1026
  :dynamic_name => true,
1032
- :description => 'Controls whether instrumentation for the typhoeus gem will be installed by the agent.'
1027
+ :description => 'Defines whether the agent will install instrumentation for the typhoeus gem.'
1033
1028
  },
1034
1029
  :disable_middleware_instrumentation => {
1035
1030
  :default => false,
1036
1031
  :public => true,
1037
1032
  :type => Boolean,
1038
- :description => 'Controls whether 3rd-party middlewares will be wrapped in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1033
+ :description => 'Defines whether the agent will wrap third-party middlewares in instrumentation (regardless of whether they are installed via Rack::Builder or Rails).'
1039
1034
  },
1040
1035
  :use_heroku_dyno_names => {
1041
1036
  :default => false,
@@ -1060,6 +1055,13 @@ module NewRelic
1060
1055
  :public => false,
1061
1056
  :type => Fixnum,
1062
1057
  :description => 'Timeout for keep alive on TCP connection to collector if supported by Ruby version. Only used in conjunction when aggressive_keepalive is enabled.'
1058
+ },
1059
+ :ca_bundle_path => {
1060
+ :default => nil,
1061
+ :allow_nil => true,
1062
+ :public => true,
1063
+ :type => String,
1064
+ :description => "Manual override for the path to your local CA bundle. This CA bundle will be used to validate the SSL certificate presented by New Relic's data collection service."
1063
1065
  }
1064
1066
  }.freeze
1065
1067