重要
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 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
重要
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.2.0
기능: OpenTelemetry 추적 지원을 위한 하이브리드 에이전트 도입
이제 OpenTelemetry Tracing API를 뉴렐릭 루비 에이전트의 새로운 하이브리드 에이전트 기능을 사용하여 뉴렐릭 텔레메트리로 변환할 수 있습니다. 이를 통해
newrelic_rpmgem은 OpenTelemetry SDK와 유사하게 동작할 수 있으며, OpenTelemetry API 호출을 수락하고 이를 친숙한 속성과 이름을 가진 뉴럴릭 트랜잭션 및 세그먼트로 변환합니다.다음 설정 옵션은 하이브리드 에이전트 기능과 관련됩니다:
설정 이름 기본값 행동 OpenTelemetry.활성화됨 false뉴렐릭을 통해 전송되는 모든 OpenTelemetry 신호를 비활성화하는 전역 설정 옵션입니다. OpenTelemetry.트레이스.enabled trueOpenTelemetry Spans에서 칩셋 트레이스 세그먼트 및 타임슬라이스 생성을 활성화합니다. OpenTelemetry.트레이스.include ''OpenTelemetry 트레이서의 쉼표로 구분된 목록(문자열 형식, 예:) "AppTracer1,OpenTelemetry:: 측정, 리소스::Bunny::측정, 리소스")는 트레이스 신호가 뉴렐릭으로 전송 됩니다. OpenTelemetry.트레이스.exclude ''OpenTelemetry 트레이서의 쉼표로 구분된 목록(문자열 형식, 예:) "AppTracer1,OpenTelemetry:: 측정, 리소스::Bunny::측정, 리소스"), 트레이스 신호가 뉴렐릭으로 전송되지 않습니다. 측정, 리소스와 충돌하는 알려진 모든 트레이서, 리소스는 기본적으로 제외됩니다. : 설정 옵션 error_collector.backtrace_truncate_location 추가
새로운 설정 옵션
error_collector.backtrace_truncate_location추가되었으며, 이를 통해 사용자는 프레임 수가error_collector.max_backtrace_frames초과할 때 백트레이스에서 어디를 잘라낼지 지정할 수 있습니다. 옵션은'top'(시작 부분에서 프레임을 제거),'middle'(시작과 끝은 유지하면서 중간 부분에서 프레임을 제거), 또는'end'(끝 부분에서 프레임을 제거)입니다. 기본값은'middle'입니다. PR#3424: 로깅 gem 측정 기능 추가, 로그아웃
이제 에이전트는 Logging gem 에서 생성된 로그를 기록합니다. PR#3420
기능: 설정 옵션을 추가합니다.utilization.Detect_in_parallel
새로운 설정 옵션
utilization.detect_in_parallel이 추가되었으며, 이는이 cloud 공급업체 정보를 감지할 때 스레드를 사용하여 시작 속도를 높일지 여부를 제어합니다.false로 설정하면 공급업체 감지가 스레드를 생성하지 않고 순차적으로 실행됩니다. 기본값은true입니다. PR#3439