Skip to content

Conversation

@hannahramadan
Copy link
Contributor

Please follow conventional commit standards
in your commit messages and pull request title.

Give us some context

  • What problems does this PR solve?
  • Add any context that will help us review your changes such as testing notes,
    links to related docs, screenshots, etc.
  • If your issue relates to an existing GitHub issue, please link to it.

@github-actions
Copy link

Hi @hannahramadan 👋

Thanks for your pull request! Your PR is in a queue, and a writer will take a look soon. We generally publish small edits within one business day, and larger edits within three days.

Please ensure the propsed changes look good by building it first in your local environment. Refer to this contribution guide to get the site up and running in your local.

If you really require a preview url, reach out to one of the writers and they will generate one for you.


## Summary [#summary]

Main changes in v10.0 include:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to structure this overview in the same order as the list at the bottom of the confluence doc (internal) about major version releases.

Comment on lines +45 to +51
Cross Application Tracing (CAT) has been removed in favor of [Distributed Tracing](https://docs.newrelic.com/docs/distributed-tracing/concepts/introduction-distributed-tracing/). The configuration option `cross_application_tracer.enabled` has been removed along with the following public API methods:

* `NewRelic::Agent::External.process_request_metadata`
* `NewRelic::Agent::External.get_response_metadata`
* `NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata`
* `NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadata`
* `NewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headers`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's good to list all of these, but I think we should also have something about what configuration looks like if you want to turn on DT or keep it off. I know we have it documented elsewhere, but it may be worth it to repeat here. Copy/pasteable code snippets are nice in these kinds of guides.

Also, if we have any related DT APIs that can be used instead of these CAT APIs, I'd like to call them out here too.


Ruby 2.4 and 2.5 are no longer supported by the Ruby agent. To continue using the latest Ruby agent version, please update to Ruby 2.6.0 or higher.

New Relic continues to support certain older Ruby versions even after they have fallen out of the officially supported maintenance window provided by the Ruby language development team (Ruby team). For example, as of March 31, 2026 the oldest Ruby version supported by the Ruby team will be version 3.3, whereas with Ruby agent version 10.0, Ruby versions 2.6 and higher are still supported. For more information about official Ruby team support of Ruby versions, see [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see (Ruby team) in the previous version, but it doesn't exactly make sense to me? Am I missing something? Open to taking it out?

Suggested change
New Relic continues to support certain older Ruby versions even after they have fallen out of the officially supported maintenance window provided by the Ruby language development team (Ruby team). For example, as of March 31, 2026 the oldest Ruby version supported by the Ruby team will be version 3.3, whereas with Ruby agent version 10.0, Ruby versions 2.6 and higher are still supported. For more information about official Ruby team support of Ruby versions, see [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/).
New Relic continues to support certain older Ruby versions even after they have fallen out of the officially supported maintenance window provided by the Ruby language development team. For example, as of March 31, 2026 the oldest Ruby version supported by the Ruby team will be version 3.3, whereas with Ruby agent version 10.0, Ruby versions 2.6 and higher are still supported. For more information about official Ruby team support of Ruby versions, see [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/).

Comment on lines +57 to +58
* Old format: Ruby/ActiveJob/<QueueName>/<Method>
* New format: Ruby/ActiveJob/<ClassName>/<QueueName>/<Method>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Old format: Ruby/ActiveJob/<QueueName>/<Method>
* New format: Ruby/ActiveJob/<ClassName>/<QueueName>/<Method>
* Old format: `Ruby/ActiveJob/<QueueName>/<Method>`
* New format: `Ruby/ActiveJob/<ClassName>/<QueueName>/<Method>`


## Removed the NewRelic::Agent::SqlSampler#notice_sql method [sql_sampler_removal]

The `NewRelic::Agent::SqlSampler#notice_sql` method has been removed. To track SQL queries, you should use the `NewRelic::Agent::Datastores.notice` method instead.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `NewRelic::Agent::SqlSampler#notice_sql` method has been removed. To track SQL queries, you should use the `NewRelic::Agent::Datastores.notice` method instead.
The `NewRelic::Agent::SqlSampler#notice_sql` method has been removed. To track SQL queries, you should use the `NewRelic::Agent::Datastores.notice_sql` method instead.

After this, what do you think about a before/after code snippet for calling the methods?

Comment on lines +72 to +80
## Removed unused arguments from various `NewRelic::Agent::Datastores` APIs [unused_arguments_removal]

The following APIs from the `NewRelic::Agent::Datastores` class have had method arguments removed:

* `NewRelic::Agent::Datastores.notice_sql`, previously had three positional arguments, `query`, `scoped_metric` and `elapsed`. Now, it only has `query`.
* `NewRelic::Agent::Datastores.notice_statement`, previously had two positional arguments `query` and `elapsed`. Now it only has `query`.
* `NewRelic::Agent::Datastores.wrap` requires a proc. Previously the proc received three arguments: the result of the yield, the most specific scoped metric name, and the elapsed time of the call. Now, it only receives one: the result of the yield.

The values of the removed arguments are derived from the current segment at the time of the call.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we combine this section and the one above into one Sql statements/datastore step? I'd like to see before and after examples for each of these method changes as well.

Comment on lines +86 to +89
* Warning messages will now be logged to the newrelic_agent.log file when nil is provided as a config value for a setting that does not support it.
* Integer values are permitted for Float configuration types.
* Float values are permitted for Integer configuration types.
* Fatal interruptions are prevented when a default value can be found to replace an invalid input value.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we think of anything people need to do with this to migrate? If not, maybe we should leave it out. One idea would be to suggest people changing the nil values for certain config settings, and maybe listing out the problematic settings?


## Removed the experimental feature Configurable Security Policies (CSP) [#csp_removal]

The experimental feature, Configurable Security Policies (CSP), is no longer supported and has been removed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about recommending High Security Mode as a replacement?


## Renamed `bin/newrelic` command to `bin/newrelic_rpm` [renamed_cli_command]

The executable file for the agent's CLI has been renamed from `bin/newrelic` to `bin/newrelic_rpm`. This change resolves a name collision with the standalone New Relic CLI tool.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a small example here could be calling the install method?

Something like a:

# before
bin/newrelic install

# after
bin/newrelic_rpm install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants