중요
최신 에이전트 버전이 출시되는 대로 업데이트하는 것을 권장합니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 최대 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와 함께 작동할 것으로 예상됩니다.