Importante
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.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v10.7.0
Feature: Add transaction_tracer.cap_segment_artifacts configuration option
Long-running transactions with many segments can cause continuously increasing memory usage for the lifetime of the transaction. The agent now offers an opt-in
transaction_tracer.cap_segment_artifactsconfiguration option (defaults tofalse). When enabled, oncetransaction_tracer.limit_segmentsis reached, the agent also stops recording exclusive time for any segments created afterward in that transaction, reducing memory usage at the cost of less accurate timing data for the transaction. PR#3615Feature: Add Puma server-statistics instrumentation
The agent now samples Puma's cluster-wide server statistics and reports them as
Ruby/Puma/*timeslice metrics, includingbacklog,running,pool_capacity,max_threads, andrequests_count. Statistics are sampled in single mode and in clustered mode whenpreload_app!is enabled. This instrumentation is disabled by default. Enable it by settingdisable_puma_instrumentationtofalse. When enabled, the agent starts a reporting thread in the Puma master process to deliver these metrics, which runs an additional agent connection alongside the Puma workers. The sampling interval is configurable via the newpuma.sample_ratesetting (default 60 seconds). Requires Puma 6.6 or later. See our docs for more information. PR#3578Feature: Report a unique hostname for Google Cloud Run instances
The agent now detects Cloud Run and reports the GCP instance id as the hostname so individual instances can be distinguished. Before this change, all Google Cloud Run hostnames were
localhost. This feature is controlled by the newutilization.gcp_cloud_run.use_instance_as_hostconfiguration option (defaulttrue). Setutilization.gcp_cloud_run.include_revision_in_host(defaultfalse) totrueto report the hostname as{K_REVISION}-{instance id}instead, whereK_REVISIONis the Cloud Run revision name. Issue#3295 PR#3609Bugfix: Slow SQL no longer recorded after transaction_tracer.limit_segments exceeded
Once a transaction exceeded
transaction_tracer.limit_segments, datastore segments created afterward still could have their slow SQL recorded. The agent now stops recording slow SQL for any segment created after the limit is reached. PR#3615Bugfix: Explain plans could target the wrong database in multi-database Rails apps (Rails >= 7.2)
On Rails 7.2+, the agent gathered explain plans using a connection from the app's default/shared pool rather than a dedicated one. This primarily affected multi-database apps. Explain plans could be generated against the wrong database, and a failed explain could leave a shared connection in a bad state, affecting unrelated requests. The agent now uses its own dedicated connection for explain plans, as it did before Rails 7.2, and resets or discards that connection whenever an explain attempt fails, so a bad connection is never reused. Issue#3610 PR#3612
Bugfix: Browser monitoring instrumentation no longer fails with
FrozenErrorWhen a response body's first fragment was a frozen
Stringand there were multiple fragments, browser instrumentation hit aFrozenErrorand the browser timing header was never injected. This began appearing withERB6.0.3+, which started freezing more of its compiled strings. This issue is now fixed. Issue#3624 PR#3625Bugfix: Normalize boolean configuration values to allow all casing
In version 9.x, the agent accepted capitalized boolean values, like "FALSE", and mixed-case values like "True". Version 10.0.0 included PR#3341, which unintentionally removed the case-insensitive requirement. This caused users who had any casing besides all lowercase to have their configuration options fall back to the defaults. Now, the agent uses case-insensitive checks again. Issue#3632 PR#3633