• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

Ruby agent release notesRSS

October 26, 2022
Ruby agent v8.12.0

v8.12.0

루비 에이전트 버전 8.12.0은 새로운 Elasticsearch 계측을 제공합니다. 루비 에이전트 버전 8.12.0은 기록되는 커스텀 대시보드의 기본 수를 늘리고, 루비 2.3의 지원 중단을 알리며, 유용한 코드 정리를 제공합니다.

  • Elasticsearch 계측 지원

    이번 루비 에이전트 릴리스에서는 elasticsearch gem을 자동으로 계측하는 지원이 추가되었습니다. 버전 7.x 및 8.x가 지원됩니다. PR#1525

    설정 이름기본값행동
    instrumentation.elasticsearch자동시작 시 elasticsearch 라이브러리의 자동 계측을 제어합니다. auto, prepend, chain, disabled 중 하나일 수 있습니다.
    elasticsearch.capture_queries진정한true 인 경우 에이전트는 트랜잭션 추적에서 Elasticsearch 쿼리를 캡처합니다.
    elasticsearch.obfuscate_queries진정한true 인 경우 에이전트는 트랜잭션 추적에서 Elasticsearch 쿼리를 난독화합니다.
  • 커스텀 대시보드 한도 증가

    이 버전의 루비 에이전트는 커스텀 대시보드의 기본 제한을 분당 1,000개 이벤트에서 분당 3,000개 이벤트로 늘립니다. 커스텀 대시보드가 제한되고 있었다면, 이 변경으로 인해 더 많은 커스텀 대시보드를 뉴렐릭으로 보낼 수 있습니다. 또한 분당 100,000개 이벤트라는 설정 가능한 새로운 최대 제한이 있습니다. 제한을 변경하려면 max_samples_stored에 대한 문서를 참조하십시오. 변경 사항 및 커스텀 대시보드가 누락되고 있는지 확인하는 방법에 대해 자세히 알아보려면 Explorers Hub 게시물을 참조하십시오. PR#1541

  • 루비 2.3 지원 중단

    루비 2.3은 2019년 3월 31일에 수명이 종료되었습니다. 루비 에이전트는 루비 2.3에 대한 지원을 중단했으며, 다음 주요 릴리스인 v9.0.0(출시일 미정)에서 이 버전에 대한 주요 변경 사항을 적용할 예정입니다. 에이전트의 모든 8.x.x 버전은 루비 2.3과 계속 호환됩니다.

  • 정리: 고립된 코드 제거

    에이전트와 단위 테스트 모두에서 수년에 걸쳐 변경 사항이 발생하여 특정 코드 부분에 도달할 수 없게 되었습니다. 이 고립된 코드는 코드 유지 관리 및 리팩터링을 복잡하게 만들 수 있으므로, 이를 정리하는 것이 매우 도움이 될 수 있습니다. 커뮤니티 멤버 @ohbarye 님이 이번 릴리스를 위해 두 개의 개별 정리 PR을 기여했습니다, 하나는 에이전트용이고 다른 하나는 테스트용입니다. PR#1537 PR#1548

    이 유용한 정리에 기여해 주신 @ohbarye 님께 감사드립니다!

지지 성명

뉴렐릭은 루비 에이전트를 정기적으로, 최소 3개월마다 업그레이드할 것을 권장합니다. 이번 릴리스를 기준으로 지원되는 가장 오래된 버전은 6.7.0.359입니다.

October 11, 2022
Ruby agent v8.11.0

v8.11.0

Version 8.11.0 of the agent updates the newrelic deployments command to work with API keys issued to newer accounts, fixes a memory leak in the instrumentation of Curb error handling, further preps for Ruby 3.2.0 support, and includes several community member driven cleanup and improvement efforts. Thank you to everyone involved!

  • Added support for New Relic REST API v2 when using newrelic deployments command

    Previously, the newrelic deployments command only supported the older version of the deployments api, which does not currently support newer license keys. Now you can use the New Relic REST API v2 to record deployments by providing your user API key to the agent configuration using api_key. When this configuration option is present, the newrelic deployments command will automatically use the New Relic REST API v2 deployment endpoint. PR#1461

    Thank you to @Arkham for bringing this to our attention!

  • Cleanup: Performance tests, constants, rubocop-minitest assertions and refutations

    Community member @esquith contributed a whole slew of cleanup successes for our performance test configuration, orphaned constants in our code base, and RuboCop related improvements. PR#1406 PR#1408 PR#1409 PR#1411

    Thank you @esquith for these great contributions!

  • CI: Notify on a change from failure to success

    A super handy, much beloved feature of certain CI and build systems is to not only notify when builds start to fail, but also to notify again when the builds once again start to go green. Community member @luigieai was able to figure out how to configure our existing complex, multiple-3rd-party-action based GitHub Actions pipeline to notify on a switch back to success from failure. PR#1519

    This is much appreciated! Thank you, @luigieai.

  • Spelling corrections

    Community member @jsoref, author of the Check Spelling GitHub Action, contributed a significant number of spelling corrections throughout the code base. The intelligent issues that were flagged made for a more comprehensive review than a simple dictionary based check would have been able to provide, and the changes are much appreciated. PR#1508

    Thank you very much, @jsoref!

  • Ruby 3.2.0-preview2 compatibility

    Ruby 3.2.0-preview1 introduced a change to the way that Ruby reports VM stats and the approach was changed yet again to a 3rd approach with the preview2 release. New Relic reports on Ruby VM stats and is keeping track of the Ruby 3.2 development process to help ensure our customers with a smooth and worthwhile upgrade process once Ruby 3.2.0 (non-preview) is released. PR#1436

  • Bugfix: Fix memory leak in the Curb instrumentation

    Community member @charkost was able to rework the on_failure callback logic prepped via the agent's Curb instrumentation in order to avoid some nesting that was causing memory leaks. PR#1518

    Many thanks for both the heads up on the issue and the fix, @charkost!

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.7.0.359.

September 13, 2022
Ruby agent v8.10.1

v8.10.1

  • Bugfix: Missing unscoped metrics when instrumentation.thread.tracing is enabled

    Previously, when instrumentation.thread.tracing was set to true, some puma applications encountered a bug where a varying number of unscoped metrics would be missing. The agent now will correctly store and send all unscoped metrics.

    Thank you to @texpert for providing details of their situation to help resolve the issue.

  • Bugfix: gRPC instrumentation causes ArgumentError when other Google gems are present

    Previously, when the agent had gRPC instrumentation enabled in an application using other gems (such as google-ads-googleads), the instrumentation could cause the error ArgumentError: wrong number of arguments (given 3, expected 2). The gRPC instrumentation has been updated to prevent this issue from occurring in the future.

    Thank you to @FeminismIsAwesome for bringing this issue to our attention.

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.5.0.357.

August 17, 2022
Ruby agent v8.10.0

v8.10.0

  • New gRPC instrumentation

    The agent will now instrument gRPC activity performed by clients and servers that use the grpc RubyGem. Instrumentation is automatic and enabled by default, so gRPC users should not need to modify any existing application code or agent configuration to benefit from the instrumentation. The instrumentation makes use of distributed tracing for a comprehensive overview of all gRPC traffic taking place across multiple monitored applications. This allows you to observe your client and server activity using any service that adheres to the W3C standard.

    The following new configuration parameters have been added for gRPC. All are optional.

    Configuration nameDefaultBehavior
    instrumentation.grpc_clientautoSet to 'disabled' to disable, set to 'chain' if there are module prepending conflicts
    instrumentation.grpc_serverautoSet to 'disabled' to disable, set to 'chain' if there are module prepending conflicts
    instrumentation.grpc.host_denylist""Provide a comma delimited list of host regex patterns (ex: "private.com$,exception.*")
  • Code-level metrics functionality is enabled by default

    The code-level metrics functionality for the Ruby agent's CodeStream integration is now enabled by default after we have received positive feedback and no open bugs for the past two releases.

  • Performance: Rework timing range overlap calculations for multiple transaction segments

    Many thanks to GitHub community members @bmulholland and @hkdnet. @bmulholland alerted us to rmosolgo/graphql-ruby#3945. That Issue essentially notes that the New Relic Ruby agent incurs a significant perfomance hit when the graphql RubyGem (which ships with New Relic Ruby agent support) is used with DataLoader to generate a high number of transactions. Then @hkdnet diagnosed the root cause in the Ruby agent and put together both a proof of concept fix and a full blown PR to resolve the problem. The agent keeps track multiple segments that are concurrently in play for a given transaction in order to merge the ones whose start and stop times intersect. The logic for doing this find-and-merge operation has been reworked to a) be deferred entirely until the transaction is ready to be recorded, and b) made more performant when it is needed. GraphQL DataLoader users and other users who generate lots of activity for monitoring within a short amount of time will hopefully see some good performance gains from these changes.

  • Performance: Make frozen string literals the default for the agent

    The Ruby frozen_string_literal: true magic source code comment has now been applied consistently across all Ruby files belonging to the agent. This can provide a performance boost, given that Ruby can rely on the strings remaining immutable. Previously only about a third of the agent's code was freezing string literals by default. Now that 100% of the code freezes string literals by default, we have internally observed some related performance gains through testing. We are hopeful that these will translate into some real world gains in production capacities.

  • Bugfix: Error when setting the yaml configuration with transaction_tracer.transaction_threshold: apdex_f

    Originally, the agent was only checking the transaction_tracer.transaction_threshold from the newrelic.yml correctly if it was on two lines.

    Example:

    # newrelic.yml
    transaction_tracer:
    transaction_threshold: apdex_f

    When this was instead changed to be on one line, the agent was not able to correctly identify the value of apdex_f.

    Example:

    # newrelic.yml
    transaction_tracer.transaction_threshold: apdex_f

    This would cause prevent transactions from finishing due to the error ArgumentError: comparison of Float with String failed. This has now been corrected and the agent is able to process newrelic.yml with a one line transaction_tracer.transaction_threshold: apdex_f correctly now.

    Thank you to @oboxodo for bringing this to our attention.

  • Bugfix: Don't modify frozen Logger

    Previously the agent would modify each instance of the Logger class by adding a unique instance variable as part of the instrumentation. This could cause the error FrozenError: can't modify frozen Logger to be thrown if the Logger instance had been frozen. The agent will now check if the object is frozen before attempting to modify the object. Thanks to @mkcosta for bringing this issue to our attention.

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.5.0.357.

July 11, 2022
Ruby agent v8.9.0

v8.9.0

  • Add support for Dalli 3.1.0 to Dalli 3.2.2

    Dalli versions 3.1.0 and above include breaking changes where the agent previously hooked into the gem. We have updated our instrumentation to correctly hook into Dalli 3.1.0 and above. At this time, 3.2.2 is the latest Dalli version and is confirmed to be supported.

  • Bugfix: Infinite Tracing hung on connection restart

    Previously, when using infinite tracing, the agent would intermittently encounter a deadlock when attempting to restart the infinite tracing connection. This bug would prevent the agent from sending all data types, including non-infinite-tracing-related data. This change reworks how we restart Infinite Tracing to prevent potential deadlocks.

  • Bugfix: Use read_nonblock instead of read on pipe

    Previously, our PipeChannelManager was using read which could cause resque jobs to get stuck in some versions. This change updates the PipeChannelManager to use read_nonblock instead to avoid this issue.

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.5.0.357.

June 2, 2022
Ruby agent v8.8.0

v8.8.0

  • Support Makara database adapters with ActiveRecord

    Thanks to a community submission from lucasklaassen with PR #1177, the Ruby agent will now correctly work well with the Makara gem. Functionality such as SQL obfuscation should now work when Makara database adapters are used with Active Record.

  • Lowered the minimum payload size to compress

    Previously the Ruby agent used a particularly large payload size threshold of 64KiB that would need to be met before the agent would compress data en route to New Relic's collector. The original value stems from segfault issues that very old Rubies (older than 2.2) used to encounter when compressing smaller payloads. This value has been lowered to 2KiB (2048 bytes), which should provide a more optimal balance between the CPU cycles spent on compression and the bandwidth savings gained from it.

  • Provide Code Level Metrics for New Relic CodeStream

    For Ruby on Rails applications and/or those with manually traced methods, the agent is now capable of reporting metrics with Ruby method-level granularity. When the new code_level_metrics.enabled configuration parameter is set to a true value, the agent will associate source-code-related metadata with the metrics for things such as Rails controller methods. Then, when the corresponding Ruby class file that defines the methods is loaded up in a New Relic CodeStream-powered IDE, the four golden signals for each method will be presented to the developer directly.

  • Supportability Metrics will always report uncompressed payload size

    New Relic's agent specifications call for Supportability Metrics to always reference the uncompressed payload byte size. Previously, the Ruby agent was calculating the byte size after compression. Furthermore, compression is only performed on payloads of a certain size. This means that sometimes the value could have represented a compressed size and sometimes an uncompressed one. Now the uncompressed value is always used, bringing consistency for comparing two instances of the same metric and alignment with the New Relic agent specifications.

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.5.0.357.

May 3, 2022
Ruby agent v8.7.0

v8.7.0

  • APM logs-in-context 로그 포워딩이 기본적으로 활성화됩니다.

    이제 자동 애플리케이션 로그 포워딩이 기본적으로 활성화됩니다. 이 버전의 에이전트는 보강된 애플리케이션 로그를 뉴렐릭으로 자동 전송합니다. 이 기능에 대해 자세히 알아보려면 여기를 참조하시고, 추가 설정 옵션은 여기에서 확인하실 수 있습니다. 계정별로 로그 수집을 켜거나 끄는 방법을 알아보려면 여기를 참조하십시오.

  • 향상된 비동기 지원 및 스레드 계측

    이전에는 에이전트가 이미 실행 중인 트랜잭션 내에서 생성된 스레드 내부의 이벤트와 메트릭을 기록할 수 없었습니다. 이번 릴리스에는 멀티스레드 애플리케이션이 스레드를 자동으로 계측하도록 지원하는 2개의 새로운 설정 옵션이 포함되어 있습니다. 새로운 설정 옵션인 instrumentation.thread.tracing (기본적으로 비활성화됨)이 도입되었으며, 이 옵션을 활성화하면 에이전트가 애플리케이션에서 생성한 모든 스레드 내부에 뉴렐릭 트레이싱을 삽입할 수 있습니다. 뉴렐릭에 의해 일부 스레드만 계측되기를 원하는 애플리케이션을 지원하기 위해, 뉴렐릭 계측을 포함하는 스레드를 생성하는 새로운 클래스인 NewRelic::TracedThread을(를) 사용할 수 있습니다. 자세한 내용은 API 문서를 참조하십시오.

    이번 릴리스에 포함된 새로운 설정 옵션:

    설정 이름

    기본값

    행동

    instrumentation.thread

    auto (활성화)

    에이전트가 비동기 트랜잭션 내부에 스팬을 올바르게 중첩할 수 있도록 합니다.

    instrumentation.thread.tracing

    false (비활성화)

    애플리케이션에서 생성된 모든 스레드에 추적을 자동으로 추가합니다. 이는 향후 릴리스에서 기본적으로 활성화될 수 있습니다.

    저희 팀에 이 기능에 대한 진입점을 제공한 gist를 공유해 주신 @mikeantonelli 님께 감사드립니다.

  • 루비 2.2에 대한 지원을 중단합니다.

    루비 2.2는 2018년 3월 31일에 수명이 종료되었습니다. 에이전트는 루비 2.2에 대한 지원을 중단했으며 다음 주요 릴리스에서 이 버전에 대한 호환되지 않는 변경 사항을 적용할 예정입니다.

  • 트랜잭션 이벤트에 대한 업데이트된 설정 옵션을 추가하고 이전 설정을 지원 중단했습니다

    이번 릴리스에서는 다음 계측이 지원 중단됩니다:

    더 이상 사용되지 않음

    바꿔 놓음

    ActiveMerchant 1.64.0 이하

    ActiveMerchant 1.65.0 이상

    ActiveRecord 3.2.22.5 이하

    ActiveRecord 4.0.0 이상

    Acts As Solr(모든 버전)

    없음

    Authlogic(모든 버전)

    없음

    Bunny 2.6.7 이하

    Bunny 2.7.0 이상

    Dalli 2.7.6 이하

    Dalli 2.7.7 이상

    DataMapper(모든 버전)

    없음

    Delayed Job 4.1.2 이하

    Delayed Job 4.1.3 이상

    Excon 0.55.0 이하

    Excon 0.56.0 이상

    Grape 0.19.1 이하

    Grape 0.19.2 이상

    HTTPClient 2.8.2.4 이하

    HTTPClient 2.8.3

    HTTP.rb 2.2.1 이하

    HTTP.rb 2.2.2 이상

    Mongo 2.4.0 이하

    Mongo 2.4.1 이상

    Padrino 0.14.4 이하

    Padrino 0.15.0 이상

    Passenger 5.1.2 이하

    Passenger 5.1.3 이상

    Puma 3.8.2 이하

    Puma 3.9.0 이상

    Rack 1.6.7 이하

    Rack 1.6.8 이상

    Rails 3.2.22.5 이하

    Rails 4.0.0 이상

    Rainbows(모든 버전)

    없음

    Sequel 4.44.0 이하

    Sequel 4.45.0 이상

    Sidekiq 4.2.10 이하

    Sidekiq 5.0.0 이상

    Sinatra 1.4.8 이하

    Sinatra 2.0.0 이상

    Sunspot(모든 버전)

    없음

    Typhoeus 1.1.2 이하

    Typhoeus 1.3.0 이상

    Unicorn 5.2.0 이하

    Unicorn 5.3.0 이상

    지원 중단된 버전의 gem의 경우, 멀티버스 제품군에서 해당 버전을 더 이상 테스트하지 않습니다. 하지만 에이전트와는 여전히 호환될 수 있습니다. 이러한 버전의 gem 문제에 대한 버그 리포트는 더 이상 수정하지 않습니다.

  • 내부적으로 Object.const_get을(를) 활용하며 Object.const_defined?

    문자열에서 클래스 상수를 동적으로 확인하거나 핸들을 얻을 때, 가능한 한 Object 클래스의 내장 메서드를 활용하여 더 간단하고 성능이 뛰어난 작업을 수행하십시오. 모든 JRuby 및 CRuby v2.5 이하 버전은 지정된 네임스페이스와 다른 네임스페이스에서 원치 않는 상수를 생성할 수 있으므로 Object이(가) 제공할 수 있는 것 이상의 약간의 지원이 필요합니다. 하지만 다른 모든 Ruby의 경우, 그리고 들어오는 문자열 값을 100% 신뢰할 수 있는 컨텍스트의 Ruby의 경우에도 Object 클래스의 메서드를 활용하여 이점을 얻으십시오.

  • rake.tasks 설정에 대한 문서를 명확히 했습니다

    기본 newrelic.yml 파일의 rake.tasks 설명과 뉴렐릭 루비 에이전트 설정 문서가 동작 및 사용법을 명확하게 하기 위해 업데이트되었습니다. 이제 문서의 내용은 다음과 같습니다:

    자동으로 계측할 Rake 작업의 어레이를 지정하십시오. 이 설정 옵션은 어레이를 정규식 목록으로 변환합니다. 기본적으로 모든 작업을 허용하려면 rake.tasks: [.+]을(를) 사용하십시오. Rake 작업은 이 목록에 추가되지 않는 한 계측되지 않습니다. 자세한 내용은 (뉴렐릭 Rake 계측 문서)[/docs/apm/agents/ruby-agent/background-jobs/rake-instrumentation]를 확인해 주십시오.

    이러한 변경 사항을 제안해 주신 @robotfelix 님께 감사드립니다.

  • 어레이 설정이 어레이로 변환되도록 환경 변수 설정을 활성화합니다.

    이 변경 이전에는 쉼표로 구분된 목록이 환경 변수로 전달될 때 newrelic_agent.log에 오류가 출력되고 문자열이 값으로 설정되었습니다. 이제 어레이가 정확하게 강제 변환됩니다.

  • 버그 수정: TransactionEvents가 예상된 비율로 샘플링되도록 허용합니다.

    TransactionEventAggregator 내의 transaction_events.max_samples_stored 용량 값이 예상되는 하베스트 주기 간격과 일치하지 않아 TransactionEvents가 과도하게 샘플링되었습니다. 이 버그 수정은 이름이 변경된 transaction_events* 설정 옵션에 대해 간격과 용량이 예상대로 작동하도록 #952에서 이루어진 업데이트를 기반으로 합니다.

  • 버그 수정: 트랜잭션 외부에서 생성될 때 오류 이벤트에 속성이 누락되는 문제

    이전에는 에이전트가 트랜잭션 범위 밖에서 notice_error를 호출하여 생성된 오류 이벤트에 우선순위를 할당하지 않았습니다. 이로 인해 오류 이벤트 버퍼가 가득 찼을 때 샘플링에 문제가 발생하여 newrelic_agent.log에 NoMethodError: undefined method '<' for nil:NilClass이(가) 기록되었습니다. 이 버그 수정은 에이전트가 이러한 오류 이벤트를 올바르게 샘플링할 수 있도록 오류 이벤트에 항상 우선순위가 할당되도록 보장합니다. 이 문제를 알려주신 @olleolleolle 님께 감사드립니다.

지지 성명

뉴렐릭은 에이전트를 정기적으로, 최소 3개월마다 업그레이드할 것을 권장합니다. 이번 릴리스부터 지원되는 가장 오래된 버전은 5.7.0.350입니다.

April 4, 2022
Ruby agent v8.6.0

v8.6.0

  • Telemetry-in-Context: Automatic Application Logs, a quick way to view logs no matter where you are in the platform

    • Adds support for forwarding application logs to New Relic. This automatically sends application logs that have been enriched to power Telemetry-in-Context. This is disabled by default in this release. This may be on by default in a future release.
    • Adds support for enriching application logs written to disk or standard out. This can be used with another log forwarder to power Telemetry-in-Context if in-agent log forwarding is not desired. We recommend enabling either log forwarding or local log decorating, but not both features. This is disabled by default in this release.
    • Improves speed and Resque support for logging metrics which shows the rate of log message by severity in the Logs chart in the APM Summary view. This is enabled by default in this release.

    To learn more about Telemetry-in-Context and the configuration options please see the documentation here.

  • Bugfix: Curb - satify method_with_tracing's verb argument requirement

    When Curb instrumentation is used (either via prepend or chain), be sure to always pass the verb argument over to method_with_tracing which requires it. Thank you to @knarewski for bringing this issue to our attention, for providing a means of reproducing an error, and for providing a fix. That fix has been replicated by the agent team with permission. See Issue 1033 for more details.

  • Improve the usage of the 'hostname' executable and other executables

    In all places where a call to an executable binary is made (currently this is done only for the 'hostname' and 'uname' binaries), leverage a new helper method when making the call. This new helper will a) not attempt to execute the binary if it cannot be found, and b) prevent STDERR/STDOUT content from appearing anywhere except New Relic's own logs if the New Relic logger is set to the 'debug' level. When calling 'hostname', fall back to Socket.gethostname if the 'hostname' binary cannot be found. When calling 'uname', fall back on using a value of 'unknown' if the 'uname' command fails. Many thanks to @metaskills and @brcarp for letting us know that Ruby AWS Lambda functions can't invoke 'hostname' and for providing ideas and feedback with Issue #697.

  • Documentation: remove confusing duplicate RUM entry from newrelic.yml

    The browser_monitoring.auto_instrument configuration option to enable web page load timing (RUM) was confusingly listed twice in the newrelic.yml config file. This option is enabled by default. The newrelic.yml file has been updated to list the option only once. Many thanks to @robotfelix for bringing this to our attention with Issue #955.

  • Bugfix: fix unit test failures when New Relic environment variables are present

    Previously, unit tests would fail with unexpected invocation errors when NEW_RELIC_LICENSE_KEY and NEW_RELIC_HOST environment variables were present. Now, tests will discard these environment variables before running.

Support statement

New Relic recommends that you upgrade the agent regularly and at a minimum every 3 months. As of this release, the oldest supported version is 6.3.0.355.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.