---
title: ruby-agent-10-3-0
source: https://docs.newrelic.com/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-10-3-0
---

> #### ⚠️ IMPORTANT
>
> We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about [keeping agents up to date](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/).
>
> See the New Relic Ruby agent [EOL policy](https://docs.newrelic.com/docs/apm/agents/ruby-agent/getting-started/ruby-agent-eol-policy/) for information about agent releases and support dates.

## v10.3.0

-   **Feature: Add database query naming via SQL comments**

    Database queries can now be explicitly named using SQL comments. Queries can include `/* NewRelicQueryName: CustomName */` comments to assign stable names for better tracking and identification. This is especially useful for tracking specific database queries during performance regressions or incidents. [PR#3480](https://github.com/newrelic/newrelic-ruby-agent/pull/3480)

-   **Feature: Add Semantic Logger instrumentation**

    The agent now supports Semantic Logger log forwarding and decoration for the `semantic_logger` gem versions 4.6.0+. If you were previously using Semantic Logger's built-in New Relic appender, it is recommended to choose one approach to avoid sending duplicate logs. New Relic's Semantic Logger instrumentation can be disabled by setting `instrumentation.semantic_logger` to `disabled`. [PR#3467](https://github.com/newrelic/newrelic-ruby-agent/pull/3467)

    Thanks to [@jdelStrother](https://github.com/jdelStrother) for providing valuable feedback that helped shape this instrumentation.

-   **Feature: Add new 'ignored_middleware_classes' configuration**

    A new configuration option, `ignored_middleware_classes`, allows users to exclude specific middlewares from instrumentation (ex. Rack::Cors). It defaults to an empty array. [Issue#1814](https://github.com/newrelic/newrelic-ruby-agent/issues/1814) [PR#3481](https://github.com/newrelic/newrelic-ruby-agent/pull/3481)

-   **Feature: Add new `NewRelic::Agent.add_transaction_log_attributes` API**

    A new API, `NewRelic::Agent.add_transaction_log_attributes`, allows users to add transaction-scoped custom attributes to log events for the current transaction. These attributes will only be applied to logs created within the scope of the current transaction. [PR#3472](https://github.com/newrelic/newrelic-ruby-agent/pull/3472)

-   **Bugfix: Provide config option to reduce cardinality of ActionCable broadcast metrics**

    By default, the metrics for ActionCable broadcast method calls include the value of the broadcasting. This value can have very high cardinality. Now, the `:simplify_action_cable_broadcast_metrics` configuration option allows users to remove the broadcasting value from the metric name. This creates a metric that looks like: `Ruby/ActionCable/broadcast`. When this configuration option is enabled, the broadcasting value will be added as a span attribute. [PR#3463](https://github.com/newrelic/newrelic-ruby-agent/pull/3463)

-   **Bugfix: Remove dead 'digest/md5' require for FIPS/FedRAMP compliance**

    In version 7.1.0 of the agent, MD5 usage was replaced with SHA1 for FIPS compliance [(PR)](https://github.com/newrelic/newrelic-ruby-agent/pull/686). However, the old require for 'digest/md5' was not removed. We have removed the require to help our FIPS/FedRAMP users. Thank you to [@ashleyboehs](https://github.com/ashleyboehs) for bringing this to our attention! [Issue#3469](https://github.com/newrelic/newrelic-ruby-agent/issues/3469) [PR#3470](https://github.com/newrelic/newrelic-ruby-agent/issues/3470)

-   **Bugfix: Prevent agent from starting during `rails test` to avoid shutdown delay**

    Previously, the agent would cause a ~3 second shutdown delay when running the `rails test` command. The `Rails::Command::TestCommand` constant has been added to the default `autostart.denylisted_constants` list to prevent the agent from starting during Rails test runs. Thanks to [@varyform](https://github.com/varyform) for bringing this to our attention. [PR#3478](https://github.com/newrelic/newrelic-ruby-agent/issues/3478)

-   **Bugfix: Fix "Unable to calculate elapsed transaction time" warnings when using Falcon web server**

    The agent now uses `Fiber.current.object_id` instead of `Thread.current.object_id` to track transaction state when running under Falcon, preventing collisions from concurrent requests sharing the same thread. Also fixes a "NameError: uninitialized constant `Async::HTTP::VERSION`" when using Falcon. Thanks to [@97jaz](https://github.com/97jaz) and [@gsar](https://github.com/gsar) for bringing this to our attention. [PR#3483](https://github.com/newrelic/newrelic-ruby-agent/issues/3483)

-   **Bugfix: Fix typo in harvest.rb causing NoMethodError**

    A typo in `lib/new_relic/agent/agent_helpers/harvest.rb` caused a `NoMethodError: undefined method 'agent' for NewRelic:Module`. Thanks to [@oakbow](https://github.com/oakbow) for reporting this issue. [PR#3484](https://github.com/newrelic/newrelic-ruby-agent/issues/3484)

-   **Bugfix: Remove usage of deprecated ObjectSpace.\_id2ref**

    The agent now uses an alternative approach instead of the deprecated `ObjectSpace._id2ref` method, eliminating deprecation warnings when running on Ruby 4.0+. [PR#3490](https://github.com/newrelic/newrelic-ruby-agent/pull/3490)

-   **Bugfix: Fix NoMethoError in Logging instrumentation**

    Previously, when the Logging gem instrumentation attempted to decorate local logs, it would raise a `NoMethodError` if it encountered a non-string object. This is now fixed. [PR#3501](https://github.com/newrelic/newrelic-ruby-agent/pull/3501)
