중요
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.9.0
Feature: Continuous Profiling (preview)
Continuous Profiling is a new feature which is not yet generally available for use. The agent-side component code is now present in the agent but to actually use it ahead of the General Availability release, you will need to contact your New Relic sales representative to join the preview early.
Continuous Profiling repeatedly samples the Ruby call stacks of your running application and reports them to New Relic, so you can see which methods are consuming the most CPU time (or allocating the most objects) in production, without adding code to your app.
To turn it on, add the
stackprofandgoogle-protobufgems to your application'sGemfile, then setprofiling.enabledtotrue:profiling.enabled: trueWith only
profiling.enabledset, the agent samples CPU time every 10 milliseconds for the life of the process. These options let you tune that behavior:Configuration name Default Behavior profiling.enabled falseIf true, the agent collects and reports continuous profiling data.profiling.include cpuWhat to sample: cpufor CPU time, orobjectfor object allocations.profiling.sample_period 0.01Seconds between stack samples. Only used when profiling.includeiscpu. Must be between 0.000001 and 0.999999.profiling.object_allocation_interval 10000Object allocations between stack samples. Only used when profiling.includeisobject. Must be between 1000 and 999999.profiling.delay 0Milliseconds to wait before profiling starts. 0starts immediately.profiling.duration 0Milliseconds to profile before stopping automatically. 0profiles until the process exits.Feature: Add support for Dalli 5.1.1
Dalli 5.1.1 added arguments to some of the methods the agent instruments, which could raise an
ArgumentErroron multi-key operations or cause request options to be silently dropped. Now, the agent accepts and forwards a variable number of positional and keyword arguments for these methods. PR#3683
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.8.0
기능: Google Cloud Run 워커 풀 및 작업에 대한 고유한 호스트명을 보고합니다.
PR#3609에 추가된 Cloud Run 호스트명 지원은 Cloud Run Services에서 설정한 환경 변수인
K_REVISION을(를) 통해서만 Cloud Run을 감지했습니다. 이제 에이전트는CLOUD_RUN_REVISION(Worker Pools) 및CLOUD_RUN_EXECUTION(Jobs)도 인식하므로, 이제utilization.gcp_cloud_run.use_instance_as_host은(는) 세 가지 리소스 유형 모두에 적용됩니다.utilization.gcp_cloud_run.include_revision_in_host이(가)true인 경우, 호스트명은 이러한 변수 중 존재하는 변수를 기반으로 생성됩니다 ― 예를 들어 Job의 경우{CLOUD_RUN_EXECUTION}-{instance id}입니다. Issue#3651 PR#3652기능:
browser_monitoring.version설정 옵션 추가이제 고객은 새로운
browser_monitoring.version설정 옵션을 설정하여 뉴렐릭이 주입하는 정확한 브라우저 에이전트 로더 버전을 고정할 수 있습니다. 현재 사용 가능하고 지원되는 버전은 브라우저 에이전트 EOL 정책을 참조하십시오. PR#3663기능: 백그라운드 작업 라이브러리에 span.kind 추가
이제 백그라운드 작업 라이브러리의
produce및consume작업에span.kind속성이 추가됩니다. 여기에는 ActiveJob, Sidekiq, Resque 및 DelayedJob이 포함됩니다. PR#3636버그 수정: prepend 모드에서 DelayedJob 계측이 더 이상 모든 워커에 자체적으로 재설치되지 않습니다.
prepend(기본값)를 통해 DelayedJob 계측이 설치된 경우, 동일한 프로세스에서 두 개 이상의
Delayed::Worker을(를) 생성하면 에이전트가 "Installing DelayedJob instrumentation"을 로그에 기록하고 추가 작업자마다 플러그인을 다시 초기화했습니다. 이는 무해하지만 노이즈가 많았으며, 이제 기존 체인 계측 동작과 일치하도록 프로세스당 한 번만 수행됩니다. PR#3654버그 수정: 허용 목록의 설정 값은 더 이상 대소문자를 구분하지 않습니다
이전에는 허용 목록에 지정된 설정 옵션에 정확한 대소문자 일치가 필요했으므로, 예상치 못한 대소문자가 포함된 값 — 예를 들어
slow_sql.record_sql에 대한OBFUSCATED또는ObFuScAtEd— 은 조용히 기본값으로 대체되었습니다. 이제 허용 목록을 기준으로 유효성을 검사하는 설정 옵션은 대소문자에 관계없이 값과 일치하므로, 두 값 모두obfuscated과(와) 동일하게 처리됩니다. 이슈#3613 PR#3645버그 수정: Puma가 지연 로드될 때 Puma 계측이 작동합니다.
gem "puma", require: false의 경우, 에이전트의 의존성 검사가 실행될 때 Puma가 아직 로드되지 않아 Puma 계측 설치에 실패했습니다. 이제 에이전트는Puma::RackHandler을(를) Puma가 존재한다는 증거로 인식하여 이 문제를 해결합니다. Issue#3641 PR#3650
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.7.1
버그 수정: Dalli 5.1.0을 사용한 다중 키 작업에서 ArgumentError 해결
이 수정 사항은 다중 및 파이프라인 작업에서 선택적 요청 옵션 인수를 수락하고 전달하도록 Dalli 계측을 업데이트합니다. 수정 사항을 기여해 주신 @dbackeus 님께 감사드립니다! PR#3642
버그 수정: 세그먼트가 시작되지 않을 때 Async::HTTP requests가 더 이상
NoMethodError을(를) 발생시키지 않음에이전트가
Async::HTTP요청에 대한 세그먼트를 생성하는 동안 내부 오류가 발생한 경우, 계측은 해당 누락된 세그먼트를 계속 사용하여NoMethodError을(를) 발생시킬 수 있었습니다. @ydah 님 덕분에 이제 이 문제가 수정되었습니다. PR#3640
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.7.0
기능: transaction_tracer.cap_segment_artifacts 구성 옵션 추가
세그먼트가 많은 장기 실행 트랜잭션은 트랜잭션의 수명 동안 메모리 사용량을 지속적으로 증가시킬 수 있습니다. 이제 에이전트는 옵트인
transaction_tracer.cap_segment_artifacts설정 옵션을 제공합니다(기본값은false입니다). 활성화된 경우,transaction_tracer.limit_segments에 도달하면 에이전트는 해당 트랜잭션에서 이후에 생성된 모든 세그먼트에 대한 독점 시간 기록도 중지하여 트랜잭션에 대한 타이밍 데이터의 정확도를 낮추는 대신 메모리 사용량을 줄입니다. PR#3615기능: Puma 서버 통계 계측 추가
이제 에이전트는 Puma의 클러스터 전체 서버 통계를 샘플링하고 이를
backlog,running,pool_capacity,max_threads및requests_count를 포함한Ruby/Puma/*타임슬라이스 메트릭으로 보고합니다. 통계는 단일 모드에서, 그리고preload_app!이(가) 활성화된 경우 클러스터 모드에서 샘플링됩니다. 이 계측은 기본적으로 비활성화되어 있습니다.disable_puma_instrumentation을(를)false(으)로 설정하여 활성화하십시오. 활성화되면 에이전트는 이러한 메트릭을 전달하기 위해 Puma 마스터 프로세스에서 보고 스레드를 시작하며, 이는 Puma 워커와 함께 추가 에이전트 연결을 실행합니다. 샘플링 간격은 새로운puma.sample_rate설정을 통해 구성할 수 있습니다(기본값 60초). Puma 6.6 이상이 필요합니다. 자세한 내용은 문서 를 참조하십시오. PR#3578기능: Google Cloud Run 인스턴스에 대한 고유 호스트명 보고
이제 에이전트가 Cloud Run을 감지하고 개별 인스턴스를 구분할 수 있도록 GCP 인스턴스 ID를 호스트명으로 보고합니다. 이 변경 이전에는 모든 Google Cloud Run 호스트명이
localhost이었습니다. 이 기능은 새로운utilization.gcp_cloud_run.use_instance_as_host설정 옵션(기본값true)에 의해 제어됩니다. 대신 호스트명을{K_REVISION}-{instance id}(으)로 보고하려면utilization.gcp_cloud_run.include_revision_in_host(기본값false)을(를)true(으)로 설정하십시오. 여기서K_REVISION은(는) Cloud Run 리비전 이름입니다. Issue#3295 PR#3609버그 수정: transaction_tracer.limit_segments 초과되었습니다
트랜잭션이
transaction_tracer.limit_segments을(를) 초과한 후에도, 이후에 생성된 데이터스토어 세그먼트에 느린 SQL이 여전히 기록될 수 있었습니다. 이제 에이전트는 한도에 도달한 후 생성된 모든 세그먼트에 대해 느린 SQL 기록을 중지합니다. PR#3615버그 수정: 다중 데이터베이스 Rails 앱에서 실행 계획이 잘못된 데이터베이스를 타겟으로 할 수 있는 문제 (Rails>=7.2)
Rails 7.2+에서 에이전트는 전용 연결 대신 앱의 기본/공유 풀의 연결을 사용하여 실행 계획을 수집했습니다. 이는 주로 다중 데이터베이스 앱에 영향을 미쳤습니다. 잘못된 데이터베이스에 대해 실행 계획이 생성될 수 있었으며, 실행 계획이 실패하면 공유 연결이 잘못된 상태로 남아 관련 없는 requests에 영향을 미칠 수 있었습니다. 이제 에이전트는 Rails 7.2 이전과 마찬가지로 실행 계획에 자체 전용 연결을 사용하며, 실행 계획 시도가 실패할 때마다 해당 연결을 재설정하거나 폐기하여 잘못된 연결이 재사용되지 않도록 합니다. Issue#3610 PR#3612
버그 수정: 브라우저 모니터링 계측이 더 이상 다음으로 인해 실패하지 않습니다.
FrozenError응답 본문의 첫 번째 조각이 고정된
String이고 여러 조각이 있는 경우, 브라우저 계측에서FrozenError이(가) 발생하여 브라우저 타이밍 헤더가 주입되지 않았습니다. 이 현상은 컴파일된 문자열을 더 많이 고정하기 시작한ERB6.0.3+부터 나타나기 시작했습니다. 이제 이 문제가 수정되었습니다. Issue#3624 PR#3625버그 수정: 모든 대소문자를 허용하도록 부울 설정 값 정규화
버전 9.x에서 에이전트는 "FALSE"와 같은 대문자 부울 값과 "True"와 같은 대소문자가 혼합된 값을 허용했습니다. 버전 10.0.0에는 대소문자를 구분하지 않는 요구 사항을 의도치 않게 제거한 PR#3341이 포함되었습니다. 이로 인해 모두 소문자가 아닌 다른 대소문자를 사용한 사용자는 설정 옵션이 기본값으로 대체되었습니다. 이제 에이전트는 다시 대소문자를 구분하지 않는 검사를 사용합니다. Issue#3632 PR#3633
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.6.0
기능: 이제 하이브리드 에이전트에서 SpanLink 이벤트가 지원됩니다.
이제 OpenTelemetry API에서 생성된 스팬에 스팬 링크 를 연결할 수 있습니다. 링크는 스팬이 시작될 때
links인수에 전달하거나OpenTelemetry::Trace::Span#add_linkAPI를 호출하여 추가할 수 있습니다. PR#3586기능: 이제 하이브리드 에이전트에서 SpanEvent 이벤트가 지원됩니다.
이제 OpenTelemetry API에서 생성된 스팬은
OpenTelemetry::Trace::Span#add_eventAPI를 통해 SpanEvent 이벤트 와 연결될 수 있습니다. SpanEvent 이벤트는 스팬에서 타임스탬프가 지정된 주석을 캡처하고 상위 스팬과 함께 뉴렐릭으로 전송됩니다. PR#3587기능: 모든 하이브리드 에이전트 스팬에 스팬 종류 설정
이전에는 외부 요청 세그먼트나 데이터스토어 세그먼트로 변환된 OpenTelemetry 스팬만 스팬 종류를 속성으로 추가했습니다. 이제 에이전트는 값을 사용할 수 있는 모든 OpenTelemetry 스팬에 스팬 종류를 추가합니다. PR#3589
기능: OpenTelemetry::Tracer#start_root_span에 대한 지원 추가
이제
OpenTelemetry::Tracer#start_root_spanAPI를 사용하여 스팬 종류가:server또는:consumer인 경우 주어진 스팬에 대해 트랜잭션을 강제로 시작할 수 있습니다. 다른 스팬 종류의 경우 아무 작업도 수행하지 않습니다. 이 메서드는 백그라운드 작업 계측에 가장 일반적으로 사용됩니다. PR#3588버그 수정:
instrumentation.rails_event_logger: false이(가) 계측을 비활성화하지 않는 문제 수정이전에는
instrumentation.rails_event_logger을(를)false(으)로 설정해도 예상대로Rails.event계측이 비활성화되지 않았으며, Rails 부팅 중에 여전히 설치되었습니다. 이제 이 문제가 수정되었습니다. PR#3564버그 수정: 계측 구성 키에 대해 부울과 유사한 값을
disabled(으)로 정규화이전에는
disabled만instrumentation.*구성 키를 끌 수 있었습니다. 이제false,no또는off와 같은 부울과 유사한 값도disabled(으)로 확인되어 계측이 설치되는 것을 방지합니다. PR#3579버그 수정: 이제 라이브러리별 로깅 지원 가능성 메트릭에 각 라이브러리의 계측 상태가 반영됩니다
이전에는
Supportability/Logging/Ruby/{library}/{enabled|disabled}메트릭이 각 라이브러리의 실제 상태가 아니라 모든 라이브러리에 대한 전역application_logging.enabled설정 값을 보고했습니다. 결과적으로 특정 라이브러리에 대한 로깅 계측을 비활성화했거나 해당 라이브러리의 gem을 전혀 사용하지 않은 경우에도 메트릭은enabled을(를) 보고했습니다. 이제 각 라이브러리의 메트릭은 자체 로깅 계측이 활성화되어 있는지 여부를 반영합니다. PR#3571
중요
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.5.0
Feature: Add Dalli 5.0 support and fix meta protocol instrumentation
The agent now supports Dalli 5.0+, which removed
Dalli::Protocol::Binaryin favor of the meta protocol exclusively. For Dalli 3.2.0+,pipelined_getinstrumentation now correctly targetsDalli::Protocol::Base(where the method is defined) rather thanDalli::Protocol::Binary, fixing a gap whereget_multicalls went uninstrumented when using the meta protocol. For Dalli 5.0+, the agent additionally instrumentsDalli::Protocol::Meta#read_multi_req, which is invoked by Dalli's single-serverget_multioptimization. PR#3541Feature: Add active_record_use_table_name configuration option
A new configuration option,
active_record_use_table_name, uses an Active Record model's table name instead of its class name when naming metrics, spans, and transaction trace segments. This can particularly be helpful to reduce cardinality in applications using single-table inheritance. The option defaults tofalseto preserve existing behavior. PR#3540Feature: Partially redact license keys in agent logs
Previously, the agent would fully redact New Relic license keys in agent logs. Now, the first 10 characters are visible while the rest are replaced with
*. This preserves enough to troubleshoot region-related issues without exposing the secret portion of the key. PR#3547Bugfix: Fix Semantic Logger instrumentation incompatibility with
rails_semantic_loggerPreviously, an
ArgumentErrorwould be raised when an exception reachedActionDispatch::DebugExceptionswhile usingrails_semantic_logger. This has been fixed. Thank you to @jdelStrother for reporting this! PR#3548