중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 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
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 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