newrelic_rpm 9.7.0 → 9.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +376 -2
  3. data/README.md +17 -18
  4. data/Rakefile +1 -1
  5. data/lib/boot/strap.rb +101 -0
  6. data/lib/new_relic/agent/agent.rb +4 -1
  7. data/lib/new_relic/agent/agent_helpers/connect.rb +10 -8
  8. data/lib/new_relic/agent/agent_helpers/start_worker_thread.rb +1 -1
  9. data/lib/new_relic/agent/agent_helpers/startup.rb +2 -1
  10. data/lib/new_relic/agent/agent_logger.rb +3 -1
  11. data/lib/new_relic/agent/aws.rb +68 -0
  12. data/lib/new_relic/agent/configuration/default_source.rb +519 -23
  13. data/lib/new_relic/agent/configuration/environment_source.rb +14 -2
  14. data/lib/new_relic/agent/configuration/high_security_source.rb +1 -0
  15. data/lib/new_relic/agent/configuration/manager.rb +51 -8
  16. data/lib/new_relic/agent/configuration/security_policy_source.rb +11 -0
  17. data/lib/new_relic/agent/configuration/yaml_source.rb +2 -0
  18. data/lib/new_relic/agent/connect/request_builder.rb +1 -1
  19. data/lib/new_relic/agent/custom_event_aggregator.rb +27 -1
  20. data/lib/new_relic/agent/database/obfuscation_helpers.rb +11 -11
  21. data/lib/new_relic/agent/database/obfuscator.rb +1 -0
  22. data/lib/new_relic/agent/database.rb +39 -0
  23. data/lib/new_relic/agent/distributed_tracing/distributed_trace_payload.rb +1 -5
  24. data/lib/new_relic/agent/error_collector.rb +39 -10
  25. data/lib/new_relic/agent/harvester.rb +1 -1
  26. data/lib/new_relic/agent/instrumentation/active_merchant.rb +0 -13
  27. data/lib/new_relic/agent/instrumentation/active_record.rb +1 -8
  28. data/lib/new_relic/agent/instrumentation/active_record_helper.rb +3 -0
  29. data/lib/new_relic/agent/instrumentation/active_record_subscriber.rb +1 -12
  30. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger/instrumentation.rb +7 -3
  31. data/lib/new_relic/agent/instrumentation/active_support_broadcast_logger.rb +0 -2
  32. data/lib/new_relic/agent/instrumentation/active_support_logger.rb +0 -2
  33. data/lib/new_relic/agent/instrumentation/async_http.rb +4 -3
  34. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/chain.rb +33 -0
  35. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/instrumentation.rb +93 -0
  36. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda/prepend.rb +23 -0
  37. data/lib/new_relic/agent/instrumentation/aws_sdk_lambda.rb +23 -0
  38. data/lib/new_relic/agent/instrumentation/aws_sqs/chain.rb +37 -0
  39. data/lib/new_relic/agent/instrumentation/aws_sqs/instrumentation.rb +67 -0
  40. data/lib/new_relic/agent/instrumentation/aws_sqs/prepend.rb +21 -0
  41. data/lib/new_relic/agent/instrumentation/aws_sqs.rb +23 -0
  42. data/lib/new_relic/agent/instrumentation/bunny/instrumentation.rb +14 -0
  43. data/lib/new_relic/agent/instrumentation/bunny.rb +3 -4
  44. data/lib/new_relic/agent/instrumentation/concurrent_ruby.rb +1 -2
  45. data/lib/new_relic/agent/instrumentation/curb.rb +3 -4
  46. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +0 -23
  47. data/lib/new_relic/agent/instrumentation/dynamodb/chain.rb +27 -0
  48. data/lib/new_relic/agent/instrumentation/dynamodb/instrumentation.rb +64 -0
  49. data/lib/new_relic/agent/instrumentation/dynamodb/prepend.rb +19 -0
  50. data/lib/new_relic/agent/instrumentation/dynamodb.rb +23 -0
  51. data/lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb +58 -8
  52. data/lib/new_relic/agent/instrumentation/elasticsearch.rb +0 -2
  53. data/lib/new_relic/agent/instrumentation/ethon.rb +0 -4
  54. data/lib/new_relic/agent/instrumentation/excon.rb +0 -16
  55. data/lib/new_relic/agent/instrumentation/fiber.rb +0 -2
  56. data/lib/new_relic/agent/instrumentation/grape.rb +1 -1
  57. data/lib/new_relic/agent/instrumentation/grpc/client/instrumentation.rb +0 -1
  58. data/lib/new_relic/agent/instrumentation/grpc_server.rb +1 -1
  59. data/lib/new_relic/agent/instrumentation/httpclient.rb +0 -1
  60. data/lib/new_relic/agent/instrumentation/httprb.rb +0 -1
  61. data/lib/new_relic/agent/instrumentation/httpx.rb +0 -4
  62. data/lib/new_relic/agent/instrumentation/logger.rb +1 -3
  63. data/lib/new_relic/agent/instrumentation/logstasher/chain.rb +21 -0
  64. data/lib/new_relic/agent/instrumentation/logstasher/instrumentation.rb +24 -0
  65. data/lib/new_relic/agent/instrumentation/logstasher/prepend.rb +13 -0
  66. data/lib/new_relic/agent/instrumentation/logstasher.rb +25 -0
  67. data/lib/new_relic/agent/instrumentation/memcache.rb +0 -1
  68. data/lib/new_relic/agent/instrumentation/net_http/instrumentation.rb +6 -0
  69. data/lib/new_relic/agent/instrumentation/opensearch/chain.rb +21 -0
  70. data/lib/new_relic/agent/instrumentation/opensearch/instrumentation.rb +66 -0
  71. data/lib/new_relic/agent/instrumentation/opensearch/prepend.rb +13 -0
  72. data/lib/new_relic/agent/instrumentation/opensearch.rb +23 -0
  73. data/lib/new_relic/agent/instrumentation/padrino.rb +3 -3
  74. data/lib/new_relic/agent/instrumentation/rack/instrumentation.rb +3 -0
  75. data/lib/new_relic/agent/instrumentation/rails_notifications/action_controller.rb +9 -5
  76. data/lib/new_relic/agent/instrumentation/rake.rb +0 -1
  77. data/lib/new_relic/agent/instrumentation/rdkafka/chain.rb +72 -0
  78. data/lib/new_relic/agent/instrumentation/rdkafka/instrumentation.rb +70 -0
  79. data/lib/new_relic/agent/instrumentation/rdkafka/prepend.rb +67 -0
  80. data/lib/new_relic/agent/instrumentation/rdkafka.rb +25 -0
  81. data/lib/new_relic/agent/instrumentation/redis/cluster_middleware.rb +26 -0
  82. data/lib/new_relic/agent/instrumentation/redis/instrumentation.rb +14 -11
  83. data/lib/new_relic/agent/instrumentation/redis/middleware.rb +3 -0
  84. data/lib/new_relic/agent/instrumentation/redis.rb +11 -5
  85. data/lib/new_relic/agent/instrumentation/resque.rb +0 -4
  86. data/lib/new_relic/agent/instrumentation/roda.rb +4 -4
  87. data/lib/new_relic/agent/instrumentation/ruby_kafka/chain.rb +55 -0
  88. data/lib/new_relic/agent/instrumentation/ruby_kafka/instrumentation.rb +67 -0
  89. data/lib/new_relic/agent/instrumentation/ruby_kafka/prepend.rb +60 -0
  90. data/lib/new_relic/agent/instrumentation/ruby_kafka.rb +25 -0
  91. data/lib/new_relic/agent/instrumentation/ruby_openai/chain.rb +36 -0
  92. data/lib/new_relic/agent/instrumentation/ruby_openai/instrumentation.rb +196 -0
  93. data/lib/new_relic/agent/instrumentation/ruby_openai/prepend.rb +20 -0
  94. data/lib/new_relic/agent/instrumentation/ruby_openai.rb +35 -0
  95. data/lib/new_relic/agent/instrumentation/sidekiq.rb +0 -14
  96. data/lib/new_relic/agent/instrumentation/sinatra.rb +3 -19
  97. data/lib/new_relic/agent/instrumentation/stripe_subscriber.rb +22 -1
  98. data/lib/new_relic/agent/instrumentation/thread.rb +0 -2
  99. data/lib/new_relic/agent/instrumentation/tilt.rb +0 -4
  100. data/lib/new_relic/agent/instrumentation/typhoeus.rb +0 -1
  101. data/lib/new_relic/agent/instrumentation/view_component/instrumentation.rb +13 -6
  102. data/lib/new_relic/agent/instrumentation/view_component.rb +0 -2
  103. data/lib/new_relic/agent/javascript_instrumentor.rb +2 -3
  104. data/lib/new_relic/agent/llm/chat_completion_message.rb +25 -0
  105. data/lib/new_relic/agent/llm/chat_completion_summary.rb +66 -0
  106. data/lib/new_relic/agent/llm/embedding.rb +60 -0
  107. data/lib/new_relic/agent/llm/llm_event.rb +95 -0
  108. data/lib/new_relic/agent/llm/response_headers.rb +80 -0
  109. data/lib/new_relic/agent/llm.rb +49 -0
  110. data/lib/new_relic/agent/local_log_decorator.rb +8 -1
  111. data/lib/new_relic/agent/log_event_aggregator.rb +120 -44
  112. data/lib/new_relic/agent/messaging.rb +11 -5
  113. data/lib/new_relic/agent/new_relic_service.rb +12 -2
  114. data/lib/new_relic/agent/serverless_handler.rb +400 -0
  115. data/lib/new_relic/agent/serverless_handler_event_sources.json +155 -0
  116. data/lib/new_relic/agent/serverless_handler_event_sources.rb +49 -0
  117. data/lib/new_relic/agent/span_event_primitive.rb +8 -10
  118. data/lib/new_relic/agent/system_info.rb +14 -0
  119. data/lib/new_relic/agent/threading/agent_thread.rb +1 -2
  120. data/lib/new_relic/agent/tracer.rb +5 -5
  121. data/lib/new_relic/agent/transaction/abstract_segment.rb +1 -1
  122. data/lib/new_relic/agent/transaction/external_request_segment.rb +0 -10
  123. data/lib/new_relic/agent/transaction/request_attributes.rb +13 -1
  124. data/lib/new_relic/agent/transaction/trace_context.rb +1 -1
  125. data/lib/new_relic/agent/transaction/tracing.rb +2 -2
  126. data/lib/new_relic/agent/transaction.rb +2 -6
  127. data/lib/new_relic/agent/transaction_error_primitive.rb +23 -19
  128. data/lib/new_relic/agent.rb +198 -10
  129. data/lib/new_relic/constants.rb +2 -0
  130. data/lib/new_relic/control/frameworks/grape.rb +14 -0
  131. data/lib/new_relic/control/frameworks/padrino.rb +14 -0
  132. data/lib/new_relic/control/frameworks/rails4.rb +1 -3
  133. data/lib/new_relic/control/instance_methods.rb +8 -0
  134. data/lib/new_relic/control/private_instance_methods.rb +4 -0
  135. data/lib/new_relic/control/security_interface.rb +57 -0
  136. data/lib/new_relic/control.rb +1 -1
  137. data/lib/new_relic/dependency_detection.rb +10 -5
  138. data/lib/new_relic/environment_report.rb +2 -2
  139. data/lib/new_relic/helper.rb +15 -0
  140. data/lib/new_relic/language_support.rb +3 -1
  141. data/lib/new_relic/local_environment.rb +14 -10
  142. data/lib/new_relic/rack/browser_monitoring.rb +28 -12
  143. data/lib/new_relic/supportability_helper.rb +2 -0
  144. data/lib/new_relic/thread_local_storage.rb +31 -0
  145. data/lib/new_relic/version.rb +2 -2
  146. data/lib/sequel/extensions/new_relic_instrumentation.rb +3 -2
  147. data/lib/tasks/config.rake +8 -3
  148. data/lib/tasks/gha.rake +31 -0
  149. data/lib/tasks/helpers/config.html.erb +3 -2
  150. data/lib/tasks/helpers/format.rb +1 -1
  151. data/lib/tasks/helpers/newrelicyml.rb +76 -13
  152. data/lib/tasks/instrumentation_generator/instrumentation.thor +31 -22
  153. data/lib/tasks/instrumentation_generator/templates/chain.tt +0 -1
  154. data/lib/tasks/instrumentation_generator/templates/chain_method.tt +0 -1
  155. data/lib/tasks/instrumentation_generator/templates/dependency_detection.tt +11 -8
  156. data/lib/tasks/instrumentation_generator/templates/newrelic.yml.tt +1 -1
  157. data/newrelic.yml +387 -143
  158. data/newrelic_rpm.gemspec +2 -0
  159. data/test/agent_helper.rb +17 -2
  160. metadata +80 -3
data/newrelic.yml CHANGED
@@ -26,31 +26,52 @@ common: &default_settings
26
26
  # All of the following configuration options are optional. Review them, and
27
27
  # uncomment or edit them if they appear relevant to your application needs.
28
28
 
29
- # An array of ActiveSupport custom event names to subscribe to and instrument. For
30
- # example,
29
+ # An array of ActiveSupport custom event names to subscribe to and instrument.
30
+ # For example,
31
31
  # - one.custom.event
32
32
  # - another.event
33
33
  # - a.third.event
34
34
  # active_support_custom_events_names: []
35
35
 
36
+ # If false, all LLM instrumentation (OpenAI only for now) will be disabled and
37
+ # no metrics, events, or spans will be sent. AI Monitoring is automatically
38
+ # disabled if high_security mode is enabled.
39
+ # ai_monitoring.enabled: false
40
+
41
+ # If false, LLM instrumentation (OpenAI only for now) will not capture input and
42
+ # output content on specific LLM events.
43
+ # The excluded attributes include:
44
+ # * content from LlmChatCompletionMessage events
45
+ # * input from LlmEmbedding events
46
+ # This is an optional security setting to prevent recording sensitive data sent
47
+ # to and received from your LLMs.
48
+ # ai_monitoring.record_content.enabled: true
49
+
36
50
  # If true, enables capture of all HTTP request headers for all destinations.
37
51
  # allow_all_headers: false
38
52
 
39
- # Your New Relic userKey. Required when using the New Relic REST API v2 to record
40
- # deployments using the newrelic deployments command.
53
+ # Your New Relic userKey. Required when using the New Relic REST API v2 to
54
+ # record deployments using the newrelic deployments command.
41
55
  # api_key: ""
42
56
 
43
57
  # If true, enables log decoration and the collection of log events and metrics.
44
58
  # application_logging.enabled: true
45
59
 
46
60
  # A hash with key/value pairs to add as custom attributes to all log events
47
- # forwarded to New Relic. If sending using an environment variable, the value must
48
- # be formatted like: "key1=value1,key2=value2"
61
+ # forwarded to New Relic. If sending using an environment variable, the value
62
+ # must be formatted like: "key1=value1,key2=value2"
49
63
  # application_logging.forwarding.custom_attributes: {}
50
64
 
51
65
  # If true, the agent captures log records emitted by your application.
52
66
  # application_logging.forwarding.enabled: true
53
67
 
68
+ # If true, the agent attaches labels to log records.
69
+ # application_logging.forwarding.labels.enabled: false
70
+
71
+ # A case-insensitive array or comma-delimited string containing the labels to
72
+ # exclude from log records.
73
+ # application_logging.forwarding.labels.exclude: []
74
+
54
75
  # Sets the minimum level a log event must have to be forwarded to New Relic.
55
76
  # This is based on the integer values of Ruby's Logger::Severity constants:
56
77
  # https://github.com/ruby/ruby/blob/master/lib/logger/severity.rb
@@ -99,10 +120,58 @@ common: &default_settings
99
120
  # Specifies a path to the audit log file (including the filename).
100
121
  # audit_log.path: log/newrelic_audit.log
101
122
 
123
+ # An array of CLASS#METHOD (for instance methods) and/or CLASS.METHOD (for class
124
+ # methods) strings representing Ruby methods that the agent can automatically
125
+ # add custom instrumentation to. This doesn't require any modifications of the
126
+ # source code that defines the methods.
127
+ # Use fully qualified class names (using the :: delimiter) that include any
128
+ # module or class namespacing.
129
+ # Here is some Ruby source code that defines a render_png instance method for an
130
+ # Image class and a notify class method for a User class, both within a
131
+ # MyCompany module namespace:
132
+ #
133
+ # module MyCompany
134
+ # class Image
135
+ # def render_png
136
+ # # code to render a PNG
137
+ # end
138
+ # end
139
+ #
140
+ # class User
141
+ # def self.notify
142
+ # # code to notify users
143
+ # end
144
+ # end
145
+ # end
146
+ #
147
+ # Given that source code, the newrelic.yml config file might request
148
+ # instrumentation for both of these methods like so:
149
+ #
150
+ # automatic_custom_instrumentation_method_list:
151
+ # - MyCompany::Image#render_png
152
+ # - MyCompany::User.notify
153
+ #
154
+ # That configuration example uses YAML array syntax to specify both methods.
155
+ # Alternatively, you can use a comma-delimited string:
156
+ #
157
+ # automatic_custom_instrumentation_method_list: 'MyCompany::Image#render_png,
158
+ # MyCompany::User.notify'
159
+ #
160
+ # Whitespace around the comma(s) in the list is optional. When configuring the
161
+ # agent with a list of methods via the
162
+ # NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST environment variable,
163
+ # use this comma-delimited string format:
164
+ #
165
+ # export
166
+ # NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST='MyCompany::Image#render_png,
167
+ # MyCompany::User.notify'
168
+ #
169
+ # automatic_custom_instrumentation_method_list: []
170
+
102
171
  # Specify a list of constants that should prevent the agent from starting
103
172
  # automatically. Separate individual constants with a comma ,. For example,
104
173
  # "Rails::Console,UninstrumentedBackgroundJob".
105
- # autostart.denylisted_constants: Rails::Command::ConsoleCommand,Rails::Command::CredentialsCommand,Rails::Command::Db::System::ChangeCommand,Rails::Command::DbConsoleCommand,Rails::Command::DestroyCommand,Rails::Command::DevCommand,Rails::Command::EncryptedCommand,Rails::Command::GenerateCommand,Rails::Command::InitializersCommand,Rails::Command::NotesCommand,Rails::Command::RoutesCommand,Rails::Command::SecretsCommand,Rails::Console,Rails::DBConsole
174
+ # autostart.denylisted_constants: Rails::Command::ConsoleCommand,Rails::Command::CredentialsCommand,Rails::Command::Db::System::ChangeCommand,Rails::Command::DbConsoleCommand,Rails::Command::DestroyCommand,Rails::Command::DevCommand,Rails::Command::EncryptedCommand,Rails::Command::GenerateCommand,Rails::Command::InitializersCommand,Rails::Command::NotesCommand,Rails::Command::RoutesCommand,Rails::Command::RunnerCommand,Rails::Command::SecretsCommand,Rails::Console,Rails::DBConsole
106
175
 
107
176
  # Defines a comma-delimited list of executables that the agent should not
108
177
  # instrument. For example, "rake,my_ruby_script.rb".
@@ -112,16 +181,16 @@ common: &default_settings
112
181
  # instrument. For example, "assets:precompile,db:migrate".
113
182
  # autostart.denylisted_rake_tasks: about,assets:clean,assets:clobber,assets:environment,assets:precompile,assets:precompile:all,db:create,db:drop,db:fixtures:load,db:migrate,db:migrate:status,db:rollback,db:schema:cache:clear,db:schema:cache:dump,db:schema:dump,db:schema:load,db:seed,db:setup,db:structure:dump,db:version,doc:app,log:clear,middleware,notes,notes:custom,rails:template,rails:update,routes,secret,spec,spec:features,spec:requests,spec:controllers,spec:helpers,spec:models,spec:views,spec:routing,spec:rcov,stats,test,test:all,test:all:db,test:recent,test:single,test:uncommitted,time:zones:all,tmp:clear,tmp:create,webpacker:compile
114
183
 
115
- # Backports the faster ActiveRecord connection lookup introduced in Rails 6, which
116
- # improves agent performance when instrumenting ActiveRecord. Note that this
117
- # setting may not be compatible with other gems that patch ActiveRecord.
184
+ # Backports the faster ActiveRecord connection lookup introduced in Rails 6,
185
+ # which improves agent performance when instrumenting ActiveRecord. Note that
186
+ # this setting may not be compatible with other gems that patch ActiveRecord.
118
187
  # backport_fast_active_record_connection_lookup: false
119
188
 
120
189
  # If true, the agent captures attributes from browser monitoring.
121
190
  # browser_monitoring.attributes.enabled: false
122
191
 
123
- # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard at
124
- # end.
192
+ # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard
193
+ # at end.
125
194
  # browser_monitoring.attributes.exclude: []
126
195
 
127
196
  # Prefix of attributes to include in browser monitoring. Allows * as wildcard at
@@ -132,9 +201,12 @@ common: &default_settings
132
201
  # (sometimes referred to as real user monitoring or RUM).
133
202
  # browser_monitoring.auto_instrument: true
134
203
 
135
- # Manual override for the path to your local CA bundle. This CA bundle will be
136
- # used to validate the SSL certificate presented by New Relic's data collection
137
- # service.
204
+ # If true, enables auto-injection of Content Security Policy Nonce in browser
205
+ # monitoring scripts. For now, auto-injection only works with Rails 5.2+.
206
+ # browser_monitoring.content_security_policy_nonce: true
207
+
208
+ # Manual override for the path to your local CA bundle. This CA bundle validates
209
+ # the SSL certificate presented by New Relic's data collection service.
138
210
  # ca_bundle_path: nil
139
211
 
140
212
  # Enable or disable the capture of memcache keys from transaction traces.
@@ -142,17 +214,20 @@ common: &default_settings
142
214
 
143
215
  # When true, the agent captures HTTP request parameters and attaches them to
144
216
  # transaction traces, traced errors, and TransactionError events.
145
- # When using the capture_params setting, the Ruby agent will not attempt to filter
146
- # secret information. Recommendation: To filter secret information from request
147
- # parameters, use the attributes.include setting instead. For more information,
148
- # see the Ruby attribute examples.
217
+ # When using the capture_params setting, the Ruby agent will not attempt to
218
+ # filter secret information. Recommendation: To filter secret information from
219
+ # request parameters, use the attributes.include setting instead. For more
220
+ # information, see the Ruby attribute examples.
149
221
  # capture_params: false
150
222
 
151
223
  # If true, the agent will clear Tracer::State in Agent.drop_buffered_data.
152
224
  # clear_transaction_state_after_fork: false
153
225
 
226
+ # The AWS account ID for the AWS account associated with this app
227
+ # cloud.aws.account_id: nil
228
+
154
229
  # If true, the agent will report source code level metrics for traced methods.
155
- # see:
230
+ # See:
156
231
  # https://docs.newrelic.com/docs/apm/agents/ruby-agent/features/ruby-codestream-integration/
157
232
  # code_level_metrics.enabled: true
158
233
 
@@ -170,15 +245,17 @@ common: &default_settings
170
245
  # If true, the agent captures custom events.
171
246
  # custom_insights_events.enabled: true
172
247
 
173
- # Specify a maximum number of custom events to buffer in memory at a time.
248
+ # * Specify a maximum number of custom events to buffer in memory at a time.
249
+ # * When configuring the agent for AI monitoring, set to max value 100000. This
250
+ # ensures the agent captures the maximum amount of LLM events.
174
251
  # custom_insights_events.max_samples_stored: 3000
175
252
 
176
- # If false, the agent will not add database_name parameter to transaction or slow
177
- # sql traces.
253
+ # If false, the agent will not add database_name parameter to transaction or
254
+ # slow sql traces.
178
255
  # datastore_tracer.database_name_reporting.enabled: true
179
256
 
180
- # If false, the agent will not report datastore instance metrics, nor add host or
181
- # port_path_or_id parameters to transaction or slow SQL traces.
257
+ # If false, the agent will not report datastore instance metrics, nor add host
258
+ # or port_path_or_id parameters to transaction or slow SQL traces.
182
259
  # datastore_tracer.instance_reporting.enabled: true
183
260
 
184
261
  # If true, disables Action Cable instrumentation.
@@ -224,16 +301,16 @@ common: &default_settings
224
301
  # If true, the agent won't wrap third-party middlewares in instrumentation
225
302
  # (regardless of whether they are installed via Rack::Builder or Rails).
226
303
  # When middleware instrumentation is disabled, if an application is using
227
- # middleware that could alter the response code, the HTTP status code reported on
228
- # the transaction may not reflect the altered value.
304
+ # middleware that could alter the response code, the HTTP status code reported
305
+ # on the transaction may not reflect the altered value.
229
306
  # disable_middleware_instrumentation: false
230
307
 
231
- # If true, disables agent middleware for Roda. This middleware is responsible for
232
- # advanced feature support such as page load timing and error collection.
308
+ # If true, disables agent middleware for Roda. This middleware is responsible
309
+ # for advanced feature support such as page load timing and error collection.
233
310
  # disable_roda_auto_middleware: false
234
311
 
235
- # If true, disables the collection of sampler metrics. Sampler metrics are metrics
236
- # that are not event-based (such as CPU time or memory usage).
312
+ # If true, disables the collection of sampler metrics. Sampler metrics are
313
+ # metrics that are not event-based (such as CPU time or memory usage).
237
314
  # disable_samplers: false
238
315
 
239
316
  # If true, disables Sequel instrumentation.
@@ -245,18 +322,6 @@ common: &default_settings
245
322
  # If true, disables agent middleware for Sinatra. This middleware is responsible
246
323
  # for advanced feature support such as cross application tracing, page load
247
324
  # timing, and error collection.
248
- # Cross application tracing is deprecated in favor of distributed tracing.
249
- # Distributed tracing is on by default for Ruby agent versions 8.0.0 and above.
250
- # Middlewares are not required to support distributed tracing.
251
- # To continue using cross application tracing, update the following options in
252
- # your newrelic.yml configuration file:
253
- # ``yaml
254
- # # newrelic.yml
255
- # cross_application_tracer:
256
- # enabled: true
257
- # distributed_tracing:
258
- # enabled: false
259
- # ``
260
325
  # disable_sinatra_auto_middleware: false
261
326
 
262
327
  # If true, disables view instrumentation.
@@ -267,8 +332,8 @@ common: &default_settings
267
332
 
268
333
  # Distributed tracing lets you see the path that a request takes through your
269
334
  # distributed system. Enabling distributed tracing changes the behavior of some
270
- # New Relic features, so carefully consult the transition guide before you enable
271
- # this feature.
335
+ # New Relic features, so carefully consult the transition guide before you
336
+ # enable this feature.
272
337
  # distributed_tracing.enabled: true
273
338
 
274
339
  # If true, the agent captures Elasticsearch queries in transaction traces.
@@ -299,8 +364,8 @@ common: &default_settings
299
364
  # error_collector.expected_classes: []
300
365
 
301
366
  # A map of error classes to a list of messages. When an error of one of the
302
- # classes specified here occurs, if its error message contains one of the strings
303
- # corresponding to it here, that error will be treated as expected.
367
+ # classes specified here occurs, if its error message contains one of the
368
+ # strings corresponding to it here, that error will be treated as expected.
304
369
  # This option can't be set via environment variable.
305
370
  # error_collector.expected_messages: {}
306
371
 
@@ -314,8 +379,8 @@ common: &default_settings
314
379
  # error_collector.ignore_classes: ["ActionController::RoutingError", "Sinatra::NotFound"]
315
380
 
316
381
  # A map of error classes to a list of messages. When an error of one of the
317
- # classes specified here occurs, if its error message contains one of the strings
318
- # corresponding to it here, that error will be ignored.
382
+ # classes specified here occurs, if its error message contains one of the
383
+ # strings corresponding to it here, that error will be ignored.
319
384
  # This option can't be set via environment variable.
320
385
  # error_collector.ignore_messages: {}
321
386
 
@@ -323,8 +388,9 @@ common: &default_settings
323
388
  # associated with these status codes, where applicable, will be ignored.
324
389
  # error_collector.ignore_status_codes: ""
325
390
 
326
- # Defines the maximum number of frames in an error backtrace. Backtraces over this
327
- # amount are truncated at the beginning and end.
391
+ # Defines the maximum number of frames in an error backtrace. Backtraces over
392
+ # this amount are truncated in the middle, preserving the beginning and the end
393
+ # of the stack trace.
328
394
  # error_collector.max_backtrace_frames: 50
329
395
 
330
396
  # Defines the maximum number of TransactionError events reported per harvest
@@ -335,19 +401,20 @@ common: &default_settings
335
401
  # requests.
336
402
  # exclude_newrelic_header: false
337
403
 
338
- # Forces the exit handler that sends all cached data to collector before shutting
339
- # down to be installed regardless of detecting scenarios where it generally should
340
- # not be. Known use-case for this option is where Sinatra is running as an
341
- # embedded service within another framework and the agent is detecting the Sinatra
342
- # app and skipping the at_exit handler as a result. Sinatra classically runs the
343
- # entire application in an at_exit block and would otherwise misbehave if the
344
- # agent's at_exit handler was also installed in those circumstances. Note:
345
- # send_data_on_exit should also be set to true in tandem with this setting.
404
+ # The exit handler that sends all cached data to the collector before shutting
405
+ # down is forcibly installed. This is true even when it detects scenarios where
406
+ # it generally should not be. The known use case for this option is when Sinatra
407
+ # runs as an embedded service within another framework. The agent detects the
408
+ # Sinatra app and skips the at_exit handler as a result. Sinatra classically
409
+ # runs the entire application in an at_exit block and would otherwise misbehave
410
+ # if the agent's at_exit handler was also installed in those circumstances.
411
+ # Note: send_data_on_exit should also be set to true in tandem with this
412
+ # setting.
346
413
  # force_install_exit_handler: false
347
414
 
348
- # Ordinarily the agent reports dyno names with a trailing dot and process ID (for
349
- # example, worker.3). You can remove this trailing data by specifying the prefixes
350
- # you want to report without trailing data (for example, worker).
415
+ # Ordinarily the agent reports dyno names with a trailing dot and process ID
416
+ # (for example, worker.3). You can remove this trailing data by specifying the
417
+ # prefixes you want to report without trailing data (for example, worker).
351
418
  # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"]
352
419
 
353
420
  # If true, the agent uses Heroku dyno names as the hostname.
@@ -374,8 +441,8 @@ common: &default_settings
374
441
  # Configures the TCP/IP port for the trace observer Host
375
442
  # infinite_tracing.trace_observer.port: 443
376
443
 
377
- # Controls auto-instrumentation of ActiveSupport::BroadcastLogger at start up. May
378
- # be one of: auto, prepend, chain, disabled. Used in Rails versions >= 7.1.
444
+ # Controls auto-instrumentation of ActiveSupport::BroadcastLogger at start up.
445
+ # May be one of: auto, prepend, chain, disabled. Used in Rails versions >= 7.1.
379
446
  # instrumentation.active_support_broadcast_logger: auto
380
447
 
381
448
  # Controls auto-instrumentation of ActiveSupport::Logger at start up. May be one
@@ -386,28 +453,40 @@ common: &default_settings
386
453
  # prepend, chain, disabled.
387
454
  # instrumentation.async_http: auto
388
455
 
456
+ # Controls auto-instrumentation of the aws_sdk_lambda library at start-up. May
457
+ # be one of auto, prepend, chain, disabled.
458
+ # instrumentation.aws_sdk_lambda: auto
459
+
460
+ # Controls auto-instrumentation of the aws-sdk-sqs library at start-up. May be
461
+ # one of: auto, prepend, chain, disabled.
462
+ # instrumentation.aws_sqs: auto
463
+
389
464
  # Controls auto-instrumentation of bunny at start-up. May be one of: auto,
390
465
  # prepend, chain, disabled.
391
466
  # instrumentation.bunny: auto
392
467
 
393
- # Controls auto-instrumentation of the concurrent-ruby library at start-up. May be
394
- # one of: auto, prepend, chain, disabled.
468
+ # Controls auto-instrumentation of the concurrent-ruby library at start-up. May
469
+ # be one of: auto, prepend, chain, disabled.
395
470
  # instrumentation.concurrent_ruby: auto
396
471
 
397
- # Controls auto-instrumentation of Curb at start-up. May be one of: auto, prepend,
398
- # chain, disabled.
472
+ # Controls auto-instrumentation of Curb at start-up. May be one of: auto,
473
+ # prepend, chain, disabled.
399
474
  # instrumentation.curb: auto
400
475
 
401
476
  # Controls auto-instrumentation of Delayed Job at start-up. May be one of: auto,
402
477
  # prepend, chain, disabled.
403
478
  # instrumentation.delayed_job: auto
404
479
 
480
+ # Controls auto-instrumentation of the aws-sdk-dynamodb library at start-up. May
481
+ # be one of auto, prepend, chain, disabled.
482
+ # instrumentation.dynamodb: auto
483
+
405
484
  # Controls auto-instrumentation of the elasticsearch library at start-up. May be
406
485
  # one of: auto, prepend, chain, disabled.
407
486
  # instrumentation.elasticsearch: auto
408
487
 
409
- # Controls auto-instrumentation of ethon at start up. May be one of
410
- # [auto|prepend|chain|disabled]
488
+ # Controls auto-instrumentation of ethon at start up. May be one of auto,
489
+ # prepend, chain, disabled
411
490
  # instrumentation.ethon: auto
412
491
 
413
492
  # Controls auto-instrumentation of Excon at start-up. May be one of: enabled,
@@ -425,18 +504,18 @@ common: &default_settings
425
504
  # Specifies a list of hostname patterns separated by commas that will match gRPC
426
505
  # hostnames that traffic is to be ignored by New Relic for. New Relic's gRPC
427
506
  # client instrumentation will ignore traffic streamed to a host matching any of
428
- # these patterns, and New Relic's gRPC server instrumentation will ignore traffic
429
- # for a server running on a host whose hostname matches any of these patterns. By
430
- # default, no traffic is ignored when gRPC instrumentation is itself enabled. For
431
- # example, "private.com$,exception.*"
507
+ # these patterns, and New Relic's gRPC server instrumentation will ignore
508
+ # traffic for a server running on a host whose hostname matches any of these
509
+ # patterns. By default, no traffic is ignored when gRPC instrumentation is
510
+ # itself enabled. For example, "private.com$,exception.*"
432
511
  # instrumentation.grpc.host_denylist: []
433
512
 
434
- # Controls auto-instrumentation of gRPC clients at start-up. May be one of: auto,
435
- # prepend, chain, disabled.
513
+ # Controls auto-instrumentation of gRPC clients at start-up. May be one of:
514
+ # auto, prepend, chain, disabled.
436
515
  # instrumentation.grpc_client: auto
437
516
 
438
- # Controls auto-instrumentation of gRPC servers at start-up. May be one of: auto,
439
- # prepend, chain, disabled.
517
+ # Controls auto-instrumentation of gRPC servers at start-up. May be one of:
518
+ # auto, prepend, chain, disabled.
440
519
  # instrumentation.grpc_server: auto
441
520
 
442
521
  # Controls auto-instrumentation of HTTPClient at start-up. May be one of: auto,
@@ -447,24 +526,28 @@ common: &default_settings
447
526
  # prepend, chain, disabled.
448
527
  # instrumentation.httprb: auto
449
528
 
450
- # Controls auto-instrumentation of httpx at start up. May be one of
451
- # [auto|prepend|chain|disabled]
529
+ # Controls auto-instrumentation of httpx at start up. May be one of auto,
530
+ # prepend, chain, disabled
452
531
  # instrumentation.httpx: auto
453
532
 
454
533
  # Controls auto-instrumentation of Ruby standard library Logger at start-up. May
455
534
  # be one of: auto, prepend, chain, disabled.
456
535
  # instrumentation.logger: auto
457
536
 
458
- # Controls auto-instrumentation of dalli gem for Memcache at start-up. May be one
459
- # of: auto, prepend, chain, disabled.
537
+ # Controls auto-instrumentation of the LogStasher library at start-up. May be
538
+ # one of: auto, prepend, chain, disabled.
539
+ # instrumentation.logstasher: auto
540
+
541
+ # Controls auto-instrumentation of dalli gem for Memcache at start-up. May be
542
+ # one of: auto, prepend, chain, disabled.
460
543
  # instrumentation.memcache: auto
461
544
 
462
545
  # Controls auto-instrumentation of memcache-client gem for Memcache at start-up.
463
546
  # May be one of: auto, prepend, chain, disabled.
464
547
  # instrumentation.memcache_client: auto
465
548
 
466
- # Controls auto-instrumentation of memcached gem for Memcache at start-up. May be
467
- # one of: auto, prepend, chain, disabled.
549
+ # Controls auto-instrumentation of memcached gem for Memcache at start-up. May
550
+ # be one of: auto, prepend, chain, disabled.
468
551
  # instrumentation.memcached: auto
469
552
 
470
553
  # Controls auto-instrumentation of Mongo at start-up. May be one of: enabled,
@@ -475,13 +558,17 @@ common: &default_settings
475
558
  # prepend, chain, disabled.
476
559
  # instrumentation.net_http: auto
477
560
 
478
- # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks into
479
- # the to_app method in Puma::Rack::Builder to find gems to instrument during
480
- # application startup. May be one of: auto, prepend, chain, disabled.
561
+ # Controls auto-instrumentation of the opensearch-ruby library at start-up. May
562
+ # be one of auto, prepend, chain, disabled.
563
+ # instrumentation.opensearch: auto
564
+
565
+ # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks
566
+ # into the to_app method in Puma::Rack::Builder to find gems to instrument
567
+ # during application startup. May be one of: auto, prepend, chain, disabled.
481
568
  # instrumentation.puma_rack: auto
482
569
 
483
- # Controls auto-instrumentation of Puma::Rack::URLMap at start-up. May be one of:
484
- # auto, prepend, chain, disabled.
570
+ # Controls auto-instrumentation of Puma::Rack::URLMap at start-up. May be one
571
+ # of: auto, prepend, chain, disabled.
485
572
  # instrumentation.puma_rack_urlmap: auto
486
573
 
487
574
  # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the
@@ -489,14 +576,18 @@ common: &default_settings
489
576
  # startup. May be one of: auto, prepend, chain, disabled.
490
577
  # instrumentation.rack: auto
491
578
 
492
- # Controls auto-instrumentation of Rack::URLMap at start-up. May be one of: auto,
493
- # prepend, chain, disabled.
579
+ # Controls auto-instrumentation of Rack::URLMap at start-up. May be one of:
580
+ # auto, prepend, chain, disabled.
494
581
  # instrumentation.rack_urlmap: auto
495
582
 
496
- # Controls auto-instrumentation of rake at start-up. May be one of: auto, prepend,
497
- # chain, disabled.
583
+ # Controls auto-instrumentation of rake at start-up. May be one of: auto,
584
+ # prepend, chain, disabled.
498
585
  # instrumentation.rake: auto
499
586
 
587
+ # Controls auto-instrumentation of the rdkafka library at start-up. May be one
588
+ # of auto, prepend, chain, disabled.
589
+ # instrumentation.rdkafka: auto
590
+
500
591
  # Controls auto-instrumentation of Redis at start-up. May be one of: auto,
501
592
  # prepend, chain, disabled.
502
593
  # instrumentation.redis: auto
@@ -505,10 +596,19 @@ common: &default_settings
505
596
  # prepend, chain, disabled.
506
597
  # instrumentation.resque: auto
507
598
 
508
- # Controls auto-instrumentation of Roda at start-up. May be one of: auto, prepend,
509
- # chain, disabled.
599
+ # Controls auto-instrumentation of Roda at start-up. May be one of: auto,
600
+ # prepend, chain, disabled.
510
601
  # instrumentation.roda: auto
511
602
 
603
+ # Controls auto-instrumentation of the ruby-kafka library at start-up. May be
604
+ # one of auto, prepend, chain, disabled.
605
+ # instrumentation.ruby_kafka: auto
606
+
607
+ # Controls auto-instrumentation of the ruby-openai gem at start-up. May be one
608
+ # of: auto, prepend, chain, disabled. Defaults to disabled in high security
609
+ # mode.
610
+ # instrumentation.ruby_openai: auto
611
+
512
612
  # Controls auto-instrumentation of Sinatra at start-up. May be one of: auto,
513
613
  # prepend, chain, disabled.
514
614
  # instrumentation.sinatra: auto
@@ -517,10 +617,11 @@ common: &default_settings
517
617
  # disabled.
518
618
  # instrumentation.stripe: enabled
519
619
 
520
- # Controls auto-instrumentation of the Thread class at start-up to allow the agent
521
- # to correctly nest spans inside of an asynchronous transaction. This does not
522
- # enable the agent to automatically trace all threads created (see
523
- # instrumentation.thread.tracing). May be one of: auto, prepend, chain, disabled.
620
+ # Controls auto-instrumentation of the Thread class at start-up to allow the
621
+ # agent to correctly nest spans inside of an asynchronous transaction. This does
622
+ # not enable the agent to automatically trace all threads created (see
623
+ # instrumentation.thread.tracing). May be one of: auto, prepend, chain,
624
+ # disabled.
524
625
  # instrumentation.thread: auto
525
626
 
526
627
  # Controls auto-instrumentation of the Thread class at start-up to automatically
@@ -535,8 +636,8 @@ common: &default_settings
535
636
  # prepend, chain, disabled.
536
637
  # instrumentation.typhoeus: auto
537
638
 
538
- # Controls auto-instrumentation of ViewComponent at startup. May be one of: auto,
539
- # prepend, chain, disabled.
639
+ # Controls auto-instrumentation of ViewComponent at startup. May be one of:
640
+ # auto, prepend, chain, disabled.
540
641
  # instrumentation.view_component: auto
541
642
 
542
643
  # A dictionary of label names and values that will be applied to the data sent
@@ -567,6 +668,12 @@ common: &default_settings
567
668
  # When true, the agent transmits data about your app to the New Relic collector.
568
669
  # monitor_mode: true
569
670
 
671
+ # If true, the agent captures OpenSearch queries in transaction traces.
672
+ # opensearch.capture_queries: true
673
+
674
+ # If true, the agent obfuscates OpenSearch queries in transaction traces.
675
+ # opensearch.obfuscate_queries: true
676
+
570
677
  # If true, uses Module#prepend rather than alias_method for ActiveRecord
571
678
  # instrumentation.
572
679
  # prepend_active_record_instrumentation: false
@@ -595,8 +702,8 @@ common: &default_settings
595
702
 
596
703
  # Specify an Array of Rake tasks to automatically instrument. This configuration
597
704
  # option converts the Array to a RegEx list. If you'd like to allow all tasks by
598
- # default, use rake.tasks: [.+]. No rake tasks will be instrumented unless they're
599
- # added to this list. For more information, visit the New Relic Rake
705
+ # default, use rake.tasks: [.+]. No rake tasks will be instrumented unless
706
+ # they're added to this list. For more information, visit the New Relic Rake
600
707
  # Instrumentation docs.
601
708
  # rake.tasks: []
602
709
 
@@ -612,24 +719,30 @@ common: &default_settings
612
719
  # before shutting down.
613
720
  # send_data_on_exit: true
614
721
 
722
+ # If true, the agent will operate in a streamlined mode suitable for use with
723
+ # short-lived serverless functions. NOTE: Only AWS Lambda functions are
724
+ # supported currently and this option isn't intended for use without New Relic's
725
+ # Ruby Lambda layer offering.
726
+ # serverless_mode.enabled: false
727
+
615
728
  # An array of strings that will collectively serve as a denylist for filtering
616
729
  # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
617
730
  # arguments, 'job.sidekiq.args.*' must be added to the separate
618
731
  # :'attributes.include' configuration option. Each string in this array will be
619
- # turned into a regular expression via Regexp.new to permit advanced matching. For
620
- # job argument hashes, if either a key or value matches the pair will be excluded.
621
- # All matching job argument array elements and job argument scalars will be
622
- # excluded.
732
+ # turned into a regular expression via Regexp.new to permit advanced matching.
733
+ # For job argument hashes, if either a key or value matches the pair will be
734
+ # excluded. All matching job argument array elements and job argument scalars
735
+ # will be excluded.
623
736
  # sidekiq.args.exclude: []
624
737
 
625
738
  # An array of strings that will collectively serve as an allowlist for filtering
626
739
  # which Sidekiq job arguments get reported to New Relic. To capture any Sidekiq
627
740
  # arguments, 'job.sidekiq.args.*' must be added to the separate
628
741
  # :'attributes.include' configuration option. Each string in this array will be
629
- # turned into a regular expression via Regexp.new to permit advanced matching. For
630
- # job argument hashes, if either a key or value matches the pair will be included.
631
- # All matching job argument array elements and job argument scalars will be
632
- # included.
742
+ # turned into a regular expression via Regexp.new to permit advanced matching.
743
+ # For job argument hashes, if either a key or value matches the pair will be
744
+ # included. All matching job argument array elements and job argument scalars
745
+ # will be included.
633
746
  # sidekiq.args.include: []
634
747
 
635
748
  # If true, the agent collects slow SQL queries.
@@ -640,16 +753,16 @@ common: &default_settings
640
753
  # the default setting for explain plans in slow SQL as well.
641
754
  # slow_sql.explain_enabled: true
642
755
 
643
- # Specify a threshold in seconds. The agent collects slow SQL queries and explain
644
- # plans that exceed this threshold.
756
+ # Specify a threshold in seconds. The agent collects slow SQL queries and
757
+ # explain plans that exceed this threshold.
645
758
  # slow_sql.explain_threshold: 0.5
646
759
 
647
- # Defines an obfuscation level for slow SQL queries. Valid options are obfuscated,
648
- # raw, or none.
760
+ # Defines an obfuscation level for slow SQL queries. Valid options are
761
+ # obfuscated, raw, or none.
649
762
  # slow_sql.record_sql: obfuscated
650
763
 
651
- # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation of
652
- # similar queries.
764
+ # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation
765
+ # of similar queries.
653
766
  # slow_sql.use_longer_sql_id: false
654
767
 
655
768
  # If true, the agent captures attributes on span events.
@@ -664,8 +777,10 @@ common: &default_settings
664
777
  # If true, enables span event sampling.
665
778
  # span_events.enabled: true
666
779
 
667
- # Defines the maximum number of span events reported from a single harvest. Any
668
- # Integer between 1 and 10000 is valid.
780
+ # * Defines the maximum number of span events reported from a single harvest.
781
+ # Any Integer between 1 and 10000 is valid.'
782
+ # * When configuring the agent for AI monitoring, set to max value 10000.This
783
+ # ensures the agent captures the maximum amount of distributed traces.
669
784
  # span_events.max_samples_stored: 2000
670
785
 
671
786
  # Sets the maximum number of span events to buffer when streaming to the trace
@@ -673,30 +788,31 @@ common: &default_settings
673
788
  # span_events.queue_size: 10000
674
789
 
675
790
  # Specify a list of exceptions you do not want the agent to strip when
676
- # strip_exception_messages is true. Separate exceptions with a comma. For example,
677
- # "ImportantException,PreserveMessageException".
791
+ # strip_exception_messages is true. Separate exceptions with a comma. For
792
+ # example, "ImportantException,PreserveMessageException".
678
793
  # strip_exception_messages.allowed_classes: ""
679
794
 
680
795
  # If true, the agent strips messages from all exceptions except those in the
681
796
  # allowlist. Enabled automatically in high security mode.
682
797
  # strip_exception_messages.enabled: false
683
798
 
684
- # An array of strings to specify which keys and/or values inside a Stripe event's
685
- # user_data hash should
799
+ # An array of strings to specify which keys and/or values inside a Stripe
800
+ # event's user_data hash should
686
801
  # not be reported to New Relic. Each string in this array will be turned into a
687
802
  # regular expression via
688
- # Regexp.new to permit advanced matching. For each hash pair, if either the key or
689
- # value is matched the
690
- # pair will not be reported. By default, no user_data is reported, so this option
691
- # should only be used if
692
- # the stripe.user_data.include option is being used.
803
+ # Regexp.new to permit advanced matching. For each hash pair, if either the key
804
+ # or value is matched the pair
805
+ # isn't reported. By default, no user_data is reported. Use this option only if
806
+ # the
807
+ # stripe.user_data.include option is also used.
693
808
  # stripe.user_data.exclude: []
694
809
 
695
- # An array of strings to specify which keys inside a Stripe event's user_data hash
696
- # should be reported
697
- # to New Relic. Each string in this array will be turned into a regular expression
698
- # via Regexp.new to
699
- # permit advanced matching. Setting the value to ["."] will report all user_data.
810
+ # An array of strings to specify which keys inside a Stripe event's user_data
811
+ # hash should be reported
812
+ # to New Relic. Each string in this array will be turned into a regular
813
+ # expression via Regexp.new to
814
+ # enable advanced matching. Setting the value to ["."] will report all
815
+ # user_data.
700
816
  # stripe.user_data.include: []
701
817
 
702
818
  # When set to true, forces a synchronous connection to the New Relic collector
@@ -704,6 +820,9 @@ common: &default_settings
704
820
  # the New Relic agent has time to report.
705
821
  # sync_startup: false
706
822
 
823
+ # If true, tracer state storage is thread-local, otherwise, fiber-local
824
+ # thread_local_tracer_state: false
825
+
707
826
  # If true, enables use of the thread profiler.
708
827
  # thread_profiler.enabled: false
709
828
 
@@ -714,8 +833,8 @@ common: &default_settings
714
833
  # If true, the agent captures attributes from transaction events.
715
834
  # transaction_events.attributes.enabled: true
716
835
 
717
- # Prefix of attributes to exclude from transaction events. Allows * as wildcard at
718
- # end.
836
+ # Prefix of attributes to exclude from transaction events. Allows * as wildcard
837
+ # at end.
719
838
  # transaction_events.attributes.exclude: []
720
839
 
721
840
  # Prefix of attributes to include in transaction events. Allows * as wildcard at
@@ -725,25 +844,26 @@ common: &default_settings
725
844
  # If true, enables transaction event sampling.
726
845
  # transaction_events.enabled: true
727
846
 
728
- # Defines the maximum number of transaction events reported from a single harvest.
847
+ # Defines the maximum number of transaction events reported from a single
848
+ # harvest.
729
849
  # transaction_events.max_samples_stored: 1200
730
850
 
731
851
  # If true, the agent captures attributes on transaction segments.
732
852
  # transaction_segments.attributes.enabled: true
733
853
 
734
- # Prefix of attributes to exclude from transaction segments. Allows * as wildcard
735
- # at end.
854
+ # Prefix of attributes to exclude from transaction segments. Allows * as
855
+ # wildcard at end.
736
856
  # transaction_segments.attributes.exclude: []
737
857
 
738
- # Prefix of attributes to include on transaction segments. Allows * as wildcard at
739
- # end.
858
+ # Prefix of attributes to include on transaction segments. Allows * as wildcard
859
+ # at end.
740
860
  # transaction_segments.attributes.include: []
741
861
 
742
862
  # If true, the agent captures attributes from transaction traces.
743
863
  # transaction_tracer.attributes.enabled: true
744
864
 
745
- # Prefix of attributes to exclude from transaction traces. Allows * as wildcard at
746
- # end.
865
+ # Prefix of attributes to exclude from transaction traces. Allows * as wildcard
866
+ # at end.
747
867
  # transaction_tracer.attributes.exclude: []
748
868
 
749
869
  # Prefix of attributes to include in transaction traces. Allows * as wildcard at
@@ -755,7 +875,7 @@ common: &default_settings
755
875
 
756
876
  # If true, enables the collection of explain plans in transaction traces. This
757
877
  # setting will also apply to explain plans in slow SQL traces if
758
- # slow_sql.explain_enabled is not set separately.
878
+ # slow_sql.explain_enabled isn't set separately.
759
879
  # transaction_tracer.explain_enabled: true
760
880
 
761
881
  # Threshold (in seconds) above which the agent will collect explain plans.
@@ -809,6 +929,130 @@ common: &default_settings
809
929
  # Foundry environment.
810
930
  # utilization.detect_pcf: true
811
931
 
932
+ # BEGIN security agent
933
+ #
934
+ # NOTE: At this time, the security agent is intended for use only within
935
+ # a dedicated security testing environment with data that can tolerate
936
+ # modification or deletion. The security agent is available as a
937
+ # separate Ruby gem, newrelic_security. It is recommended that this
938
+ # separate gem only be introduced to a security testing environment
939
+ # by leveraging Bundler grouping like so:
940
+ #
941
+ # # Gemfile
942
+ # gem 'newrelic_rpm' # New Relic APM observability agent
943
+ # gem 'newrelic-infinite_tracing' # New Relic Infinite Tracing
944
+ #
945
+ # group :security do
946
+ # gem 'newrelic_security', require: false # New Relic security agent
947
+ # end
948
+ #
949
+ # NOTE: All "security.*" configuration parameters are related only to the
950
+ # security agent, and all other configuration parameters that may
951
+ # have "security" in the name somewhere are related to the APM agent.
952
+
953
+ # If true, the security agent loads (the agent performs a Ruby 'require')
954
+ # security.agent.enabled: false
955
+
956
+ # The port the application is listening on. This setting is mandatory for
957
+ # Passenger servers. The agent detects other servers by default.
958
+ # security.application_info.port: nil
959
+
960
+ # If true, the security agent is started (the agent runs in its event loop)
961
+ # security.enabled: false
962
+
963
+ # Defines API paths the security agent should ignore in IAST scans. Accepts an
964
+ # array of regex patterns matching the URI to ignore. The regex pattern should
965
+ # find a complete match for the URL without the endpoint. For example,
966
+ # [".*account.*"], [".*/\api\/v1\/.*?\/login"]
967
+ # security.exclude_from_iast_scan.api: []
968
+
969
+ # An array of HTTP request body keys the security agent should ignore in IAST
970
+ # scans.
971
+ # security.exclude_from_iast_scan.http_request_parameters.body: []
972
+
973
+ # An array of HTTP request headers the security agent should ignore in IAST
974
+ # scans. The array should specify a list of patterns matching the headers to
975
+ # ignore.
976
+ # security.exclude_from_iast_scan.http_request_parameters.header: []
977
+
978
+ # An array of HTTP request query parameters the security agent should ignore in
979
+ # IAST scans. The array should specify a list of patterns matching the HTTP
980
+ # request query parameters to ignore.
981
+ # security.exclude_from_iast_scan.http_request_parameters.query: []
982
+
983
+ # If true, disables system command injection detection in IAST scans.
984
+ # security.exclude_from_iast_scan.iast_detection_category.command_injection: false
985
+
986
+ # If true, disables the detection of low-severity insecure settings. For
987
+ # example, hash, crypto, cookie, random generators, trust boundary).
988
+ # security.exclude_from_iast_scan.iast_detection_category.insecure_settings: false
989
+
990
+ # If true, disables file operation-related IAST detections (File Access &
991
+ # Application integrity violation)
992
+ # security.exclude_from_iast_scan.iast_detection_category.invalid_file_access: false
993
+
994
+ # If true, disables Javascript injection detection in IAST scans.
995
+ # security.exclude_from_iast_scan.iast_detection_category.javascript_injection: false
996
+
997
+ # If true, disables LDAP injection detection in IAST scans.
998
+ # security.exclude_from_iast_scan.iast_detection_category.ldap_injection: false
999
+
1000
+ # If true, disables NOSQL injection detection in IAST scans.
1001
+ # security.exclude_from_iast_scan.iast_detection_category.nosql_injection: false
1002
+
1003
+ # If true, disables Reflected Cross-Site Scripting (RXSS) detection in IAST
1004
+ # scans.
1005
+ # security.exclude_from_iast_scan.iast_detection_category.rxss: false
1006
+
1007
+ # If true, disables SQL injection detection in IAST scans.
1008
+ # security.exclude_from_iast_scan.iast_detection_category.sql_injection: false
1009
+
1010
+ # If true, disables Sever-Side Request Forgery (SSRF) detection in IAST scans.
1011
+ # security.exclude_from_iast_scan.iast_detection_category.ssrf: false
1012
+
1013
+ # If true, disables XPATH injection detection in IAST scans.
1014
+ # security.exclude_from_iast_scan.iast_detection_category.xpath_injection: false
1015
+
1016
+ # A unique test identifier when runnning IAST in a CI/CD environment to
1017
+ # differentiate between different test runs. For example, a build number.
1018
+ # security.iast_test_identifier: nil
1019
+
1020
+ # Defines the mode for the security agent to operate in. Currently only IAST is
1021
+ # supported
1022
+ # security.mode: IAST
1023
+
1024
+ # Sets the maximum number of HTTP requests allowed for the IAST scan per minute.
1025
+ # Any Integer between 12 and 3600 is valid. The default value is 3600.
1026
+ # security.scan_controllers.iast_scan_request_rate_limit: 3600
1027
+
1028
+ # If true, enables the sending of HTTP responses bodies. Disabling this also
1029
+ # disables Reflected Cross-Site Scripting (RXSS) vulnerability detection.
1030
+ # security.scan_controllers.report_http_response_body: true
1031
+
1032
+ # The number of application instances for a specific entity to perform IAST
1033
+ # analysis on.
1034
+ # security.scan_controllers.scan_instance_count: 0
1035
+
1036
+ # If true, allows IAST to continuously gather trace data in the background. The
1037
+ # security agent uses collected data to perform an IAST scan at the scheduled
1038
+ # time.
1039
+ # security.scan_schedule.always_sample_traces: false
1040
+
1041
+ # Specifies the delay time (in minutes) before the IAST scan begins after the
1042
+ # application starts.
1043
+ # security.scan_schedule.delay: 0
1044
+
1045
+ # Indicates the duration (in minutes) for which the IAST scan will be performed.
1046
+ # security.scan_schedule.duration: 0
1047
+
1048
+ # Specifies a cron expression that sets when the IAST scan should run.
1049
+ # security.scan_schedule.schedule: ""
1050
+
1051
+ # Defines the endpoint URL for posting security-related data
1052
+ # security.validator_service_url: wss://csec.nr-data.net
1053
+
1054
+ # END security agent
1055
+
812
1056
  # Environment-specific settings are in this section.
813
1057
  # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.
814
1058
  # If your application has other named environments, configure them here.