重要
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 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
重要
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.3.0
기능: SQL 주석을 통해 데이터베이스 쿼리 이름 지정 추가
이제 SQL 주석을 사용하여 데이터베이스 쿼리에 명시적인 이름을 지정할 수 있습니다. 쿼리에는 추적 및 식별을 개선하기 위해 안정적인 이름을 지정하는
/* NewRelicQueryName: CustomName */주석이 포함될 수 있습니다. 이는 성능 회귀 또는 인시던트 중에 특정 데이터베이스 쿼리를 추적하는 데 특히 유용합니다. PR#3480기능: 의미론적 로거 측정 추가, 로그
에이전트는 이제
semantic_loggergem 버전 4.6.0+에 대한 Semantic 로거 로그 포워딩 및 장식을 지원합니다. 이전에 Semantic 로거의 내장 뉴렐릭 어펜더를 사용하셨다면, 중복 로그 전송을 방지하기 위해 한 가지 방법을 선택하시는 것이 좋습니다. 뉴렐릭의 Semantic 로거 측정, 리소스는instrumentation.semantic_logger을disabled로 설정하여 비활성화할 수 있습니다. PR#3467@jdelStrother 님께서 귀중한 피드백을 제공해 주셔서 이 측정, 계측을 구체화하는 데 도움이 되었습니다.
기능: 'ignored_middleware_classes' 설정을 새로 추가합니다.
새로운 설정 옵션인
ignored_middleware_classes사용하면 사용자가 측정, 로그에서 특정 미들웨어를 제외할 수 있습니다(예: 랙::코어스). 기본적으로 비어 있는 다시입니다. 이슈 번호 1814 PR 번호 3481기능: 새로운
NewRelic::Agent.add_transaction_log_attributesAPI 추가새 API 인
NewRelic::Agent.add_transaction_log_attributes) 사용하면 사용자가 현재 프로세서에 대한 프로세서 범위의 관습 속성 등록 이벤트를 추가할 수 있습니다. 이러한 속성은 현재 트랜잭션 범위 내에서 생성된 로그에만 적용됩니다. PR#3472버그 수정: ActionCable 브로드캐스트 메트릭의 카디널리티를 줄이는 구성 옵션을 제공합니다.
기본적으로 ActionCable 브로드캐스트 메서드 호출에 대한 메트릭에는 브로드캐스팅 값이 포함됩니다. 이 값은 매우 높은 카디널리티를 가질 수 있습니다. 이제
:simplify_action_cable_broadcast_metrics설정 옵션을 사용하면 지표 이름에서 방송 값을 제거할 수 있습니다. 이것은 다음과 같은 형태를 갖는 것을 생성합니다:Ruby/ActionCable/broadcast. 이 설정 옵션을 활성화하면 브로드캐스팅 값이 span 속성으로 추가됩니다. PR#3463버그 수정: FIPS/FedRAMP 규정 준수를 위한 더 이상 필요 없는 'digest/md5' 요구 사항을 제거했습니다.
에이전트 버전 7.1.0에서는 FIPS 규정 준수를 위해 MD5 사용이 SHA1으로 대체되었습니다 (PR). 하지만 기존의 'digest/md5' 요구 사항은 제거되지 않았습니다. FIPS/FedRAMP 사용자들을 지원하기 위해 해당 요구 사항을 제거했습니다. 이 문제를 알려주신 @ashleyboehs 님께 감사드립니다! 이슈 번호 3469 PR 번호 3470
버그 수정: 종료 지연을 방지하기 위해
rails test동안 에이전트가 시작되지 않도록 수정했습니다.이전에는 에이전트가
rails test명령을 실행할 때 약 3초의 종료 지연이 발생했습니다.Rails::Command::TestCommand상수는 Rails 테스트 실행 중에 에이전트가 시작되는 것을 방지하기 위해 기본autostart.denylisted_constants목록에 추가되었습니다. 이 문제를 알려주신 @varyform 님께 감사드립니다. PR#3478버그 수정: Falcon 웹 서버 사용 시 "경과된 작업 시간을 계산할 수 없습니다"라는 경고 메시지를 수정했습니다.
이제 Falcon 에서 실행될 때 상태를 추적하기 위해
Thread.current.object_id대신Fiber.current.object_id사용하여 동일한 스레드를 공유하는 동시 requests 으로 인한 충돌을 방지합니다. 또한 Falcon을 사용할 때 발생하는 "NameError: uninitialized constantAsync::HTTP::VERSION" 오류를 수정합니다. 이 문제를 알려주신 @97jaz님 과 @gsar 님께 감사드립니다. PR#3483버그 수정: harvest.rb 파일의 오타로 인해 발생하던 NoMethodError 오류를 수정했습니다.
lib/new_relic/agent/agent_helpers/harvest.rb의 오타로 인해NoMethodError: undefined method 'agent' for NewRelic:Module이 발생했습니다. 이 문제를 제보해 주신 @oakbow 님께 감사드립니다. PR#3484버그 수정: 더 이상 사용되지 않는 ObjectSpace._id2ref 사용을 제거했습니다.
이제 해당 도구는 더 이상 사용되지 않는
ObjectSpace._id2ref방법 대신 대체 접근 방식을 사용하므로 루비 4.0 이상에서 실행 시 사용 중단 경고가 사라집니다. PR#3490버그 수정: Logging 측정, 리소스의 NoMethoError 수정
이전에 Logging gem 측정, 계측이 로컬 로그를 데코레이션하려고 시도할 때 문자열이 아닌 객체를 만나면
NoMethodError오류가 발생했습니다. 이 문제는 이제 해결되었습니다. PR#3501