Important
최신 에이전트 버전이 출시되는 대로 업데이트하는 것을 권장합니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 최대 90일 이전 버전으로 업데이트하십시오. 에이전트를 최신 상태로 유지하는 방법에 대해 자세히 알아보십시오.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v9.1.0
에이전트 버전 9.1.0은 두 가지 새로운 에러스 인박스(errors inbox) 기능: 오류 핑거프린팅 및 사용자 추적에 대한 지원을 제공하고, Amazon Timestream 데이터 저장소를 식별하며, Sidekiq 사용 시 에이전트 로그에서 분산 추적 경고를 제거하고, 버그를 수정하며, 최근 릴리스된 JRuby 9.4.2.0에 대해 테스트되었습니다.
기능: 오류 핑거프린팅 - 자체 에러스 인박스(errors inbox) 그룹 이름을 제공하십시오.
에러 발생이 잘못 그룹화되어 있습니까? 콜백 함수를 통해 자체 에러 핑거프린트를 설정하십시오. 사용자 정의 proc을 허용하는 새로운
set_error_group_callback퍼블릭 API 메서드가 추가되었습니다. proc은 감지된 각 에러에 대해 호출되며 문자열을 반환할 때마다 해당 문자열이 에러의 에러 그룹 이름으로 사용되고 뉴렐릭 에러스 인박스(errors inbox)에서 발생하는 모든 서버 측 그룹화보다 우선합니다. 이를 통해 사용자는 에러 그룹화를 훨씬 더 효과적으로 제어할 수 있습니다.고객이 정의한 proc은 정확히 하나의 입력 인수인 해시를 수신해야 합니다. 해시에는 다음이 포함됩니다:
열쇠 값 :errorRuby 오류 클래스 인스턴스. 제안 #class,#message및#backtrace:customAttributes현재 트랜잭션에 대해 고객이 정의한 모든 커스텀 속성 :'request.uri'사용 가능한 경우 현재 요청 URI :'http.statusCode'사용 가능한 경우 HTTP 상태 코드(200, 404 등) :'http.method'사용 가능한 경우 HTTP 메서드(GET, PUT 등) :'error.expected'오류가 예상되었는지(true) 또는 아닌지(false) 여부 :'options'전달된 옵션 해시 NewRelic::Agent.notice_error콜백은 뉴렐릭 에이전트 초기화당 한 번만 설정하면 됩니다.
사용 예시:
proc = proc { |hash| "Access" if hash[:'http.statusCode'] == 401 }NewRelic::Agent.set_error_group_callback(proc)기능: 사용자 추적 — 오류를 사용자 ID와 연결
이제 오류 그룹의 영향을 받는 사용자 수를 확인할 수 있습니다. 사용자 ID의 문자열 표현을 허용하고 해당 사용자 ID를 현재 트랜잭션과 연결하는 새로운
set_user_id퍼블릭 API 메서드를 사용하여 최종 사용자를 식별합니다. 그러면 트랜잭션과 오류에 새로운enduser.id에이전트 속성이 연결됩니다. 이를 통해 에이전트 사용자는 더 나은 필터링 및 알림 기능을 지원하기 위해 트랜잭션과 오류를 특정 사용자 ID에 속하는 것으로 태그를 지정할 수 있습니다.amazon_timestream AR 어댑터를 사용할 때 Amazon Timestream을 식별합니다.
에이전트가 activerecord-amazon-timestream-adapter gem이 사용되는 것을 확인하면, 이제 데이터 저장소를 "Timestream"으로 식별합니다. 이 개선 사항에 기여해 주신 @wagner 님께 진심으로 감사드립니다! PR#1872
버그 수정: Sidekiq에 헤더가 없는 경우 에이전트 로그에서 분산 추적 관련 경고를 제거합니다.
이전에는 에이전트가 Sidekiq 작업에서 빈 분산 추적 헤더를 허용하려고 시도할 때마다
newrelic_agent.log에 경고를 로그로 남겼으며, 이로 인해 과도한 수의 경고가 발생할 수 있었습니다. 이제 에이전트는 Sidekiq을 사용할 때 더 이상 이러한 경고를 생성하지 않습니다. PR#1834버그 수정: 사람이 읽을 수 있는 객체 대신 디버그 레벨 로그에 요청 헤더를 로그로 기록합니다.
이전에는
NewRelic::Agent::Transaction::DistributedTracers#log_request_headers이(가) 호출될 때 에이전트가 때때로NewRelic::Agent::HTTPClients::AbstractRequest클래스의 하위 항목을 인수로 받았습니다. 이로 인해 요청 헤더를 출력하는 디버그 수준 로그 메시지가 사람이 읽을 수 있는 객체(예:#<NewRelic::Agent::HTTPClients::HTTPClientRequest:0x00007fd0dda983e0>)를 요청 헤더 대신 표시했습니다. 이제 요청 헤더의 해시가 항상 로그로 기록되어야 합니다. PR#1839버그 수정: Action Controller 측정, 계측에 로그된 정의되지 않은 메서드
controller_path을(를) 수정합니다.이전에는 컨트롤러 클래스가
controller_path에 응답하지 않으면 Action Controller 계측에서 메트릭 이름을 결정하려고 할 때 에이전트가 오류를 로그로 기록할 수 있었습니다. 이 문제는 해결되었으며, 클래스가 이에 응답하지 않는 한 에이전트는 더 이상 이 메서드를 호출하지 않습니다. 이 문제에 대해 알려주신 @gsar 님께 감사드립니다. PR#1844버그 수정: 비동기 트랜잭션 중 Transaction#finish 예외를 수정하고 관련 경고에 대한 로그 레벨을 낮춥니다.
이전에는 트랜잭션이 완료되었을 때 상위가 없는 세그먼트가 완료되지 않은 경우 에이전트에서 치명적이지 않은 에러를 발생시켰습니다. 이 에러는
warn수준 로그 메시지를 구성하는 동안 발생했습니다. 이제 Thread 측정, 계측이 기본적으로 켜져 있으므로 이 로그 메시지가 더 자주 발생하며 덜 우려됩니다. 트랜잭션에서 Thread, Fiber 또는 concurrent-ruby 세그먼트가 표시되는 경우 메시지가debug수준으로 저하됩니다. 이슈를 생성해 주신 @NielsKSchjoedt 님과 솔루션을 테스트해 주신 @boomer196 님께 감사드립니다. PR#1876CI: 타겟 JRuby 9.4.2.0
이제 에이전트는 JRuby 9.4.2.0에 대해 적극적으로 테스트되고 있습니다. 참고로 이 릴리스에는 JRuby에 대한 비 CI 관련 변경 사항이 포함되어 있지 않습니다. 이전 에이전트 버전은 여전히 최신 JRuby와 함께 작동할 것으로 예상되며, 최신 에이전트 버전은 여전히 이전 JRuby와 함께 작동할 것으로 예상됩니다.
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 at most 90 days old. Read more about keeping agent up to date.
As of this release, the oldest supported version is 6.10.0
v9.0.0
Version 9.0.0 of the agent removes several deprecated configuration options and API methods, enables Thread tracing by default, adds Fiber instrumentation, removes support for Ruby versions 2.2 and 2.3, removes instrumentation for several deprecated gems, changes how the API method set_transaction_name works, and updates rails_defer_initialization to be an environment variable only configuration option.
Remove deprecated configuration options
The following configuration options have been removed and will no longer work. Please update all configs to use the replacements listed below. PR#1782
Removed | Replacement |
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enable Thread instrumentation by default
The configuration option
instrumentation.thread.tracingis now enabled by default. This configuration allows the agent to properly monitor code occurring inside threads. In Ruby agent 9.0, instrumented code within threads will be recorded and associated with the current transaction when the thread was created.This may be a breaking change if you are currently using custom thread instrumentation. New transactions inside of threads will no longer be started if one already exists. PR#1767
Add Fiber instrumentation
Fiberinstances are now automatically instrumented similarly toThreadinstances. This can be configured usinginstrumentation.fiber. PR#1802Removed support for Ruby 2.2 and 2.3
Ruby 2.2 and 2.3 are no longer supported by the Ruby agent. To continue using the latest Ruby Agent version, please update to Ruby 2.4.0 or above. PR#1778
Removed deprecated instrumentation
Instrumentation for the following gems had been previously deprecated and has now been removed. PR#1788
- Acts As Solr
- Authlogic
- DataMapper
- Rainbows
- Sunspot
Versions of the following technologies had been previously deprecated and are no longer supported.
- Passenger: 2.2.x - 4.0.x
- Puma: 2.0.x
- Grape: 0.2.0
- Padrino: 0.14.x
- Rails: 3.2.x
- Sinatra: 1.4.x, 1.5.x
- Mongo: 1.8.x - 2.3.x
- Sequel: 3.37.x, 4.0.x
- Delayed_Job: 2.0.x - 4.0.x
- Sidekiq: 4.2.x
- Excon: below 0.55.0
- HttpClient: 2.2.0 - 2.8.0
- HttpRb: 0.9.9 - 2.2.1
- Typhoeus: 0.5.3 - 1.2.x
- Bunny: 2.0.x - 2.6.x
- ActiveMerchant: 1.25.0 - 1.64.x
Updated API method
set_transaction_nameWhen the method
NewRelic::Agent.set_transaction_nameis called, it will now always change the name and category of the currently running transaction to what is passed into the method. This is a change from previous agent versions.Previously, if
set_transaction_namewas called with a new transaction name and a new category that did not match the category already assigned to a transaction, neither the new name nor category would be saved to the transaction. If this method is being called in a situation in which it was previously ignored due to category differences, this will now change the name and category of the transaction. PR#1797Removed API method:
NewRelic::Agent.disable_transaction_tracingThe deprecated API method
NewRelic::Agent.disable_transaction_tracinghas been removed. Instead use eitherNewRelic::Agent#ignore_transactionto disable the recording of the current transaction orNewRelic::Agent.disable_all_tracingto yield a block without collecting any metrics or traces in any of the subsequent calls. PR#1792Renamed ActiveJob metrics
Previously, ActiveJob was categorized as a message broker, which is inaccurate. We've updated the naming of ActiveJob traces from leading with
MessageBroker/ActiveJobto simply leading withActiveJob. PR#1811Code cleanup
Thank you to community member @esquith for contributing some cleanup of orphaned constants in our code base. PR#1793 PR#1794 PR#1808
Community member @fchatterji helped standardize how we reference
NewRelicthroughout our codebase PR#1795 and updated our README's community header PR#1815. Thanks fchatterji!Bugfix: Allow rails initialization to be deferred by environment variable
The Ruby agent may force some Rails libraries to load on agent initialization, preventing some settings defined in
config/initializersfrom being applied. Changing the initialization process to run afterconfig/initializers, however, may break the configuration for other gems (ex. Roadie Rails).For those having troubles with agent initialization and Rails initializers, you can now pass the environment variable
NEW_RELIC_DEFER_RAILS_INITIALIZATION=trueto make the agent initialize afterconfig/initializersare run. This config option can only be set using an environment variable and can't be set using YAML. PR#1791Thanks to @jdelStrother for bringing this issue to our attention and testing our fixes along the way. Issue#662
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 at most 90 days old. Read more about keeping agent up to date.
As of this release, the oldest supported version is 6.9.0.363
v8.16.0
Version 8.16.0 introduces more Ruby on Rails instrumentation (especially for Rails 6 and 7) for various Action*/Active* libraries whose actions produce Active Support notifications events.
Add Various Ruby on Rails Library Instrumentations
New instrumentation is now automatically provided by several Action*/Active* libaries that generate Active Support notifications. With each Ruby on Rails release, new the Rails libraries add new events and sometimes existing events have their payload parameters updated as well. The New Relic Ruby agent will now automatically process more of these events and parameters with New Relic segments created for each event. At a minimum, each segment gives timing information for the event. In several cases, all non-sensitive event payload parameters are also passed along in the segment.
The agent now newly supports or has updated support for the following libraries:
- Action Cable (for WebSockets) PR#1749
- Action Controller (for the 'C' in MVC) PR#1744
- Action Mailbox (for sending mail) PR#1740
- Action Mailer (for routing mail) PR#1740
- Active Job (for background jobs) PR#1742
- Active Support (for caching operations) PR#1742
The instrumentations for each of these libaries are all enabled by default, but can be independently disabled via configuration by using the following parameters:
Configuration name Default Behavior disable_action_cablefalseIf true, disables Action Cable instrumentation.disable_action_controllerfalseIf true, disables Action Controller instrumentation.disable_action_mailboxfalseIf true, disables Action Mailbox instrumentation.disable_action_mailerfalseIf true, disables Action Mailer instrumentation.disable_activejobfalseIf true, disables Active Job instrumentation.disable_active_supportfalseIf true, disables Active Support instrumentation.
Important
We recommend updating to the latest agent version as soon as it's available. If you are prevented from upgrading to the latest version, ensure that your agents are updated to a version at most 90 days old. Read more about keeping your agent up to date.
As of this release, the oldest supported version is 6.9.0.363
v8.15.0
Version 8.15.0 of the agent confirms compatibility with Ruby 3.2.0, adds instrumentation for concurrent-ruby, and confirms Sinatra 3 compatibility with Padrino 0.15.2. It also enables batching and compression for Infinite Tracing.
Add Support for Ruby 3.2.0
Following the 3.2.0 release of Ruby, the New Relic Ruby agent has confirmed compatibility with and now supports the official release of Ruby 3.2.0. PR#1715
Add instrumentation for concurrent-ruby
The agent now instruments the concurrent-ruby gem for versions 1.1.5 and above. This instrumentation provides visibility inside blocks passed to many of the gem's API methods, including
Concurrent::Promises.futureandConcurrent::Future.execute.
| Configuration name | Default | Behavior |
|---|---|---|
instrumentation.concurrent_ruby | auto | Controls auto-instrumentation of the concurrent-ruby library at start up. May be one of auto, prepend, chain, disabled. |
Infinite Tracing: Use batching and compression
For Infinite Tracing, which Ruby applications can leverage with the
newrelic-infinite_tracinggem, payloads will now be batched and compressed to signficantly decrease the amount of outbound network traffic. PR#1723
| Configuration name | Default | Behavior | |||
|---|---|---|---|---|---|
infinite_tracing.batching | true | If true (the default), the Trace Observer will receive data in batches instead of sending each span individually | |||
infinite_tracing.compression_level | high | Configure the compression level for data sent to the trace observer. May be one of [none | low | medium | high]. 'high' is the default. Set the level to 'none' to disable compression. |
Important
We recommend updating to the latest agent version as soon as it's available. If your organization has established practices that prevent you from upgrading to the latest version, ensure that your agents are regularly updated to a version at most 90 days old. Read more about keeping your agent up to date.
As of this release, the oldest supported version is 6.8.0.359
v8.14.0
Version 8.14.0 of the agent restores desired Capistrano-based changelog lookup functionality when a deployment is performed, speeds up GUID generation, delivers support for instrumenting Rails custom event notifications, fixes potential compatibility issues with the RedisClient gem, and fixes bugs related to initialization in Rails.
Deployment Recipe: Restore desired Capistrano-based changelog lookup behavior
The New Relic Ruby agent offers a Capistrano recipe for recording app deployments. The recipe code was significantly cleaned up with PR#1498 which inadvertently changed the way the recipe handles the changelog for a deployment. Community member @arthurwozniak spotted and corrected this change in order to restore the desired changelog lookup functionality while retaining all of the previous cleanup. Thank you very much for your contribution, @arthurwozniak! PR#1653
Speed up GUID generation
The agent leverages random numbers in its GUID (globally unique identifier) generation and would previously always freshly calculate the result of 16^16 or 32^32 before generating a random number. Given that those 16^16 and 32^32 operations are expected, it makes sense to calculate their results up front and store them in constants to be referred to later. Doing so has resulted in a performance gain for the generation of GUIDs. Many thanks to @tungmq for contributing this optimisation and the benchmarks to support it! PR#1693
Support for Rails ActiveSupport::Notifications for custom events
When the new
active_support_custom_events_namesconfiguration parameter is set equal to an array of custom event names to subscribe to, the agent will now subscribe to each of the names specified and report instrumentation for the events when they take place. Creating custom events is simple and now reporting instrumentation for them to New Relic is simple as well. PR#1659Bugfix: Support older versions of the RedisClient gem, handle unknown Redis database index
With version 8.13.0 of the agent, support was added for the redis-rb gem v5+ and the new RedisClient gem. With versions of RedisClient older than v0.11, the agent could cause the monitored application to crash when attempting to determine the Redis database index. Version 8.14.0 adds two related improvements. Firstly, support for RedisClient versions older than v0.11 has been added to get at the database index value. Secondly, the agent will no longer crash or impact the monitored application in the event that the database index cannot be obtained. Thank you very much to our community members @mbsmartee and @patatepartie for bringing this issue to our attention, for helping us determine how to best reproduce it, and for testing out the update. We appreciate your help! Issue#1650 PR#1673
Bugfix: Defer agent startup in Rails until after application-defined initializers have runIn Rails, the agent previously loaded before any application-defined initializers. This allowed initializers to reference theadd_method_tracerAPI. However, this had the side-effect of forcing some framework libraries to load before initializers ran, preventing any configuration values related to these libraries from being applied. This fix provides an option to split initialization into two parts: loadadd_method_tracerbefore application-defined initializers and start the agent after application-defined initializers. This may cause other initializers to behave differently.If you'd like to use this feature, setdefer_rails_initializationtotrue. It isfalseby default, but may becometrueby default in a future release.Furthermore, our Action View instrumentation was missing anActiveSupport.on_loadblock around the code that loads our instrumentation.Thank you @jdelStrother for bringing this to our attention and collaborating with us on a fix. PR#1658Unfortunately, this bugfix is unreachable as written because the configuration value used to access the bugfix won't be applied until after initialization. Follow along for updates at Issue#662.
Important
We recommend updating to the latest agent version as soon as it's available. If your organization has established practices that prevent you from upgrading to the latest version, ensure that your agents are regularly updated to a version at most 90 days old. Read more about keeping your agent up to date.
As of this release, the oldest supported version is 6.8.0.359
v8.13.1
Version 8.13.1 of the agent provides a bugfix for Redis v5.0 instrumentation.
Fix NoMethodError when using Sidekiq v7.0 with Redis Client v0.11
In some cases, the
RedisClientobject cannot directly access methods like db, port, or path. These methods are always available on theclient.configobject. This raised aNoMethodErrorin environments that used Sidekiq v7.0 and Redis Client v0.11. Thank you to fcheung and @stevenou for bringing this to our attention! Issue#1639
v8.13.0
Version 8.13.0 of the agent updates our Rack, Redis, and Sidekiq instrumentation. It also delivers some bugfixes.
Support for Redis v5.0
Redis v5.0 restructures where some of our instrumented methods are located and how they are named. It also introduces a new instrumentation middleware API. This API is used for pipelined and multi calls to maintain reporting parity with previous Redis versions. However, it is introduced later in the chain, so you may see errors that used to appear at the segment level on the transaction instead. The agent's behavior when used with older supported Redis versions will remain unaffected. PR#1611
Support for Sidekiq v7.0
Sidekiq v7.0 removed Delayed Extensions and began offering client and server middleware classes to inherit from. The agent's Sidekiq instrumentation has been updated accordingly. The agent's behavior when used with older Sidekiq versions will remain unaffected. PR#1615 NOTE: an issue was discovered with Sidekiq v7.0+ and addressed by Ruby agent v8.13.1. If you are using Sidekiq, please skip Ruby agent v8.13.0 and use v8.13.1 or above.
Support for Rack v3.0: Rack::Builder#new accepting a block
Via rack/rack#1942 (released with Rack v3.0),
Rack::Builder#runnow optionally accepts a block instead of an app argument. The agent's instrumentation has been updated to support the use of a block withRack::Builder#run. PR#1600Bugfix: Correctly identify Unicorn, Rainbows and FastCGI with Rack v3.0
Unicorn, Rainbows, or FastCGI web applications using Rack v3.0 may previously have had the "dispatcher" value incorrectly reported as "Webrick" instead of "Unicorn", "Rainbows", or "FastCGI". This issue has now been addressed. PR#1585
Bugfix: add_method_tracer fails to record code level metric attributes on private methods
When using
add_method_traceron a private method, the agent was unable to record code level metrics for the method. This resulted in the following being logged to the newrelic_agent.log file.WARN : Unable to determine source code info for 'Example', method 'private_method' - NameError: undefined method 'private_method' for class '#<Class:Example\>'Thank you @jdelStrother for bringing this issue to our attention and suggesting a fix! PR#1593
Bugfix: Category is a required keyword arg for NewRelic::Agent::Tracer.in_transaction
When support for Ruby 2.0 was dropped in version 8.0.0 of the agent, the agent API methods were updated to use the required keyword argument feature built into Ruby, rather than manually raising ArgumentErrors. The API method
NewRelic::Agent::Tracer.in_transactionremoved the ArgumentError raised by the agent, but did not update the method arguments to identify:categoryas a required keyword argument. This is now resolved. Thank you @tatzsuzuki for bringing this to our attention. PR#1587
Support statement
New Relic recommends that you upgrade the Ruby agent regularly and at a minimum of every 3 months. As of this release, the oldest supported version is 6.8.0.359.
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입니다.