중요
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.1
Bugfix: Resolve ArgumentError on multi-key operations with Dalli 5.1.0
This fix updates Dalli instrumentation to accept and forward optional request options arguments in multi and pipelined operations. Our thanks go to @dbackeus for contributing a fix! PR#3642
Bugfix: Async::HTTP requests no longer raise
NoMethodErrorwhen a segment fails to startIf the agent encountered an internal error while creating the segment for an
Async::HTTPrequest, the instrumentation went on to use that missing segment and could raise aNoMethodError. This is now fixed, thanks to @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
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.5.0
기능: Dalli 5.0 지원 추가 및 메타 프로토콜 계측 수정
이제 에이전트는 메타 프로토콜을 전적으로 사용하기 위해
Dalli::Protocol::Binary을(를) 제거한 Dalli 5.0+를 지원합니다. Dalli 3.2.0+의 경우,pipelined_get계측은 이제Dalli::Protocol::Binary대신Dalli::Protocol::Base(메서드가 정의된 곳)를 올바르게 타겟으로 지정하여, 메타 프로토콜을 사용할 때get_multi호출이 계측되지 않던 문제를 해결합니다. Dalli 5.0+의 경우, 에이전트는 Dalli의 단일 서버get_multi최적화에 의해 호출되는Dalli::Protocol::Meta#read_multi_req을(를) 추가로 계측합니다. PR#3541기능: active_record_use_table_name 설정 옵션 추가
새로운 설정 옵션인
active_record_use_table_name은(는) 메트릭, 스팬 및 트랜잭션 트레이스 세그먼트의 이름을 지정할 때 Active Record 모델의 클래스 이름 대신 테이블 이름을 사용합니다. 이는 단일 테이블 상속을 사용하는 애플리케이션에서 카디널리티를 줄이는 데 특히 도움이 될 수 있습니다. 기존 동작을 유지하기 위해 옵션은 기본적으로false(으)로 설정됩니다. PR#3540기능: 에이전트 로그에서 라이선스 키 부분 삭제
이전에는, 에이전트가 에이전트 로그에서 뉴렐릭 라이선스 키를 완전히 삭제했습니다. 이제 처음 10자는 표시되고 나머지는
*(으)로 대체됩니다. 이는 키의 비밀 부분을 노출하지 않고도 리전 관련 문제를 해결하기에 충분한 정보를 보존합니다. PR#3547버그 수정: Semantic Logger 계측 비호환성 수정
rails_semantic_logger이전에는
rails_semantic_logger을(를) 사용하는 동안 예외가ActionDispatch::DebugExceptions에 도달하면ArgumentError이(가) 발생했습니다. 수정되었다. 이를 제보해 주신 @jdelStrother 님께 감사드립니다! PR#3548
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.4.0
기능: 구조화된 로깅을 위한 Rails.event 계측 추가
이제 에이전트는 Rails.event를 구조화된 로그 이벤트로 지원합니다. 활성화되면
Rails.event.notify을(를) 통해 게시된 이벤트는 캡처되어 로그 이벤트로 뉴렐릭에 전달됩니다. 이벤트 페이로드, 태그, 컨텍스트, 타임스탬프 및 소스 위치는 로그 속성으로 자동으로 캡처됩니다.이 계측은 다음 옵션으로 구성할 수 있습니다:
instrumentation.rails_event_logger- Rails.event 계측이 활성화되는지 여부를 제어합니다. 기본적으로application_logging.enabled값을 사용합니다.instrumentation.rails_event_logger.event_names- 캡처할 특정 이벤트 이름의 어레이입니다. 비어 있는 경우(기본값), 모든 Rails.event 공지가 캡처됩니다. 이를 사용하여 이름별로 이벤트를 필터링합니다. 예:['user.signup', 'payment.processed'].
기능: Rails Active Job Continuations 계측 추가
이제 에이전트가 Rails Active Job Continuations를 계측하여 장기 실행 작업 내의 개별 단계 실행에 대한 가시성을 제공합니다. 단계 이름은 세그먼트 메트릭(예:
Ruby/ActiveJob/default/MyJob/step/process_records)에 포함되며 커서 위치, 재개 상태, 중단 상태와 같은 단계별 속성이 캡처됩니다. 새로운 설정 옵션인disable_active_job_step_names을(를) 통해 사용자는 필요한 경우 메트릭 기수를 줄이기 위해 메트릭 이름에서 단계 이름을 제외할 수 있습니다(기본값은false입니다). PR#3493기능: sidekiq.separate_transactions 추가 설정 옵션
새로운 설정 옵션인
sidekiq.separate_transactions을(를) 사용하면 웹 트랜잭션 중에 실행되는 Sidekiq 작업을 별도의 자체 트랜잭션에서 실행할 수 있습니다. 활성화하면 Sidekiq 작업 실행 시간이 웹 트랜잭션 메트릭에 포함되는 것을 방지하여 더 정확한 성능 데이터를 제공합니다. 이 기능은 역호환성을 유지하기 위해 선택 사항(기본값: false)입니다. 이는 활성 웹 트랜잭션 중에 실행되는 작업에만 영향을 미치며, 독립적으로 시작되거나 다른 백그라운드 작업 내에 중첩된 작업은 영향을 받지 않습니다. Issue#3364 PR#3514버그 수정: ReDOS 공격에 취약했을 수 있는 정규식 업데이트
이전에는 에이전트에 다항 시간 복잡도(ReDOS) 공격의 가능한 타겟으로 식별된 몇 가지 정규식이 있었습니다. 우려 사항을 해결하기 위해 해당 정규식이 업데이트되었습니다. PR#3520
Bugfix: HTTPX 세그먼트 생성 중 충돌을 방지합니다.
이전에는
start_external_request_segment에서 오류가 발생하여nil을(를) 반환하면, 에이전트는 누락된 세그먼트에 헤더를 추가하려고 시도할 때NoMethodError을(를) 트리거했습니다. 계측이 이러한 경우를 원활하게 처리할 수 있도록 가드 검사를 추가했습니다.보고서를 작성해 주신 @thebravoman 님께 박수를 보냅니다! 이슈#3509 PR#3510
버그 수정: Transaction#finish를 멱등하게 만들기
이전에는 Transaction#finish 메서드가 여러 번 호출되면 동일한 작업에 대해 둘 이상의 트랜잭션이 생성될 수 있었습니다. 이제 뮤텍스가 Transaction#finish에 대한 호출을 보호하여 finish 작업이 한 번만 실행되도록 합니다. PR#3513
버그 수정: Datastores.wrap API의 Log 기능에 대한 사용 중단 경고 (1회)
이전에는 Datastores.wrap에 대한 모든 호출에서 이 경고가 로그에 기록되었습니다. 이제 첫 번째 호출에만 로그가 기록됩니다. 또한, 두 번째 및 세 번째 콜백 인수의 사용 중단 상태를 명시하도록 문서가 업데이트되었습니다. 이슈#3516 PR#3519
중요
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.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#3480Feature: Add Semantic Logger instrumentation
The agent now supports Semantic Logger log forwarding and decoration for the
semantic_loggergem 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 settinginstrumentation.semantic_loggertodisabled. PR#3467Thanks to @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 PR#3481Feature: Add new
NewRelic::Agent.add_transaction_log_attributesAPIA 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#3472Bugfix: 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_metricsconfiguration 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#3463Bugfix: 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). 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 for bringing this to our attention! Issue#3469 PR#3470
Bugfix: Prevent agent from starting during
rails testto avoid shutdown delayPreviously, the agent would cause a ~3 second shutdown delay when running the
rails testcommand. TheRails::Command::TestCommandconstant has been added to the defaultautostart.denylisted_constantslist to prevent the agent from starting during Rails test runs. Thanks to @varyform for bringing this to our attention. PR#3478Bugfix: Fix "Unable to calculate elapsed transaction time" warnings when using Falcon web server
The agent now uses
Fiber.current.object_idinstead ofThread.current.object_idto track transaction state when running under Falcon, preventing collisions from concurrent requests sharing the same thread. Also fixes a "NameError: uninitialized constantAsync::HTTP::VERSION" when using Falcon. Thanks to @97jaz and @gsar for bringing this to our attention. PR#3483Bugfix: Fix typo in harvest.rb causing NoMethodError
A typo in
lib/new_relic/agent/agent_helpers/harvest.rbcaused aNoMethodError: undefined method 'agent' for NewRelic:Module. Thanks to @oakbow for reporting this issue. PR#3484Bugfix: Remove usage of deprecated ObjectSpace._id2ref
The agent now uses an alternative approach instead of the deprecated
ObjectSpace._id2refmethod, eliminating deprecation warnings when running on Ruby 4.0+. PR#3490Bugfix: Fix NoMethoError in Logging instrumentation
Previously, when the Logging gem instrumentation attempted to decorate local logs, it would raise a
NoMethodErrorif it encountered a non-string object. This is now fixed. PR#3501