중요
주요 버전 업데이트: 이번 루비 버전은 SemVer MAJOR 업데이트이며 호환성이 깨지는 변경 사항이 포함되어 있습니다. 주요 버전에서는 유지 관리자가 지원 종료(End-of-Life)를 선언한 언어 런타임에 대한 지원을 중단할 수 있습니다. 또한, 주요 버전에서는 특정 측정, 계측에 대한 지원이 중단되거나 해당 기능이 제거될 수 있습니다. 이러한 변경 사항에 대한 자세한 내용은 여기에서 마이그레이션 가이드를 참조하십시오.
중요
최신 에이전트 버전이 출시되면 즉시 업데이트하는 것이 좋습니다. 최신 버전으로 업그레이드할 수 없는 경우, 에이전트를 90일 이내 버전으로 업데이트하세요. 에이전트에게 최신 정보를 제공하는 방법 에 대해 자세히 알아보세요.
에이전트 릴리스 및 지원 날짜에 대한 정보는 뉴렐릭 루비 에이전트 EOL 정책을 참조하세요.
v10.0.0
호환성 파괴 변경 사항: 루비 2.4 및 2.5 버전에 대한 지원을 제거합니다.
루비 버전 2.4 및 2.5에 대한 지원이 제거되었습니다. 새로운 최소 요구 루비 버전은 2.6입니다. PR#3314
획기적인 변화: CAT(Standing Tracing) 제거
이전에는 CAT(강력한 추적)가 더 이상 사용되지 않고 대신 추적되었습니다. CAT 기능이 제거되었습니다. 설정 옵션
cross_application_tracer.enabled이 제거되었습니다. 공개 API 메서드NewRelic::Agent::External.process_request_metadata,NewRelic::Agent::External.get_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadata및NewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headers도 제거되었습니다. PR#3333주요 변경 사항: ActiveJob 메트릭 및 세그먼트 이름 변경
ActiveJob 메트릭이 업데이트되어 보다 구체적인 보고를 위해 작업 클래스 이름이 포함되었습니다. 이는 주요 변경 사항이므로 사용자 정의 대시보드 또는 알림을 업데이트해야 할 수도 있습니다. PR#3370 PR#3320
- 이전 형식:
Ruby/ActiveJob/<QueueName>/<Method> - 새로운 형식:
Ruby/ActiveJob/<QueueName>/<ClassName>/<Method>
또한, 활성 작업 대기열 작업에 대해 생성된 세그먼트에는 이제 작업 클래스가 포함됩니다.
- 이전 형식:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName> - 새로운 형식:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>/<ClassName>
- 이전 형식:
호환성 파괴 변경:
bin/newrelic명령어의 이름을 변경합니다.bin/newrelic_rpm에이전트 CLI의 실행 파일 이름이
bin/newrelic에서bin/newrelic_rpm로 변경되었습니다. 이번 변경으로 독립 실행형 뉴렐릭 CLI 도구와의 이름 충돌 문제가 해결되었습니다. PR#3323호환성 파괴 변경:
newrelic deploymentsCLI 명령어를 제거합니다.더 이상 사용되지 않는
newrelic deploymentsCLI 명령이 제거되었습니다. 변경 사항 및 구현, 뉴렐릭 배포를 추적하려면 사용 가능한 옵션 목록에 대한 변경 추적 가이드를 참조하세요. PR#3299호환성 파괴 변경: NewRelic::에이전트::SqlSampler#notice_sql 메서드가 제거되었습니다.
사용자는
NewRelic::Agent::Datastores.notice_sql대신 호출해야 합니다. PR#3338호환성 파괴 변경: 다양한 NewRelic::에이전트::Datastores API에서 사용되지 않는 인수를 제거합니다.
NewRelic::Agent::Datastores클래스의 다음 API에서 메서드 인수가 제거되었습니다.NewRelic::Agent::Datastores.notice_sql이전에는query,scoped_metric,elapsed의 세 가지 위치 인수가 있었습니다. 지금은query만 있습니다.NewRelic::Agent::Datastores.notice_statement이전에는 두 개의 위치 인수query과elapsed이 있었습니다. 지금은query만 있습니다.NewRelic::Agent::Datastores.wrap프로시저가 필요합니다. 이전에는 해당 프로시저가 yield 결과, 가장 구체적인 범위의 메트릭 이름, 그리고 호출에 걸린 시간이라는 세 가지 인수를 받았습니다. 이제 그것은 오직 하나의 결과, 즉 수확량만을 받습니다.
제거된 인수의 값은 호출 당시의 현재 세그먼트에서 가져옵니다. PR#3347
주요 변경 사항: 실험적 기능 설정 가능 보안 정책(CSP) 제거
설정 가능한 보안 정책(CSP)이라는 실험적 기능은 더 이상 지원되지 않으며 제거되었습니다. PR#3292
호환성 파괴 변경: Puma 버전 '<' 3.9.0에 대한 지원을 제거합니다.
현재 지원되는 Puma의 최소 버전은 3.9.0 이상입니다. PR#3326
획기적인 변경 사항: 설정 유효성 검사 및 강제 적용 개선
입력 설정에 제공된 값을 강제로 적용하고 유효성을 검사하는 데 사용되는 내부 로직이 이제 더욱 성능이 향상되고 정확도가 높아졌습니다.
- 이제 설정에서 nil을 지원하지 않는 경우 구성 값으로 nil이 제공되면 경고 메시지가 newrelic_agent.log 파일에 기록됩니다.
- 토크 설정 유형에는 정수 값이 허용됩니다.
- 정수 설정 유형에 대해 값이 허용됩니다.
- 잘못된 입력값을 대체할 기본값을 찾을 수 있는 경우 치명적인 중단을 방지할 수 있습니다 . (PR#3341)
호환성 파괴 변경: 분산 추적 원격 상위 샘플러에서 '기본값' 옵션을 '적응형'으로 대체합니다.
이전에는
distributed_tracing.sampler.remote_parent_sampled및distributed_tracing.sampler.remote_parent_not_sampled에 대한 기본 옵션이 기존 적응형 샘플러를 사용하는default였습니다.default옵션이adaptive로 이름이 변경되었습니다. PR#3363:
logger(를) 의존성/종속성 기능으로 추가하세요.loggergem은 이제 에이전트의 의존성/종속성으로 나열되어 지속적인 로깅 기능과 루비 4.0.0 및 최신 버전에 대한 지원을 보장합니다. PR#3293: Active Support 공지 허용 목록 설정 옵션 추가
새로운 설정 옵션인
instrumentation.active_support_notifications.active_support_events사용하면 에이전트가 구독할 Active Support 공지 이벤트 이름의 허용 목록을 정의할 수 있습니다. 기본적으로 에이전트는 모든 Active Support: Caching 및 Active Support: Messages 이벤트를 구독합니다. PR#3327: 루비에 내장된 Gzip 압축 사용
에이전트는 이제 압축을 위해 루비 표준의 내장
Zlib.gzip메소드를 사용하여 이전 사용자 정의 구현을 대체합니다. PR#3332기능:
NewRelic::Agent#record_custom_eventAPI에 대한 인자 유효성 검사 추가NewRelic::Agent#record_custom_eventAPI는 이제 유효하지 않은event_type가 제공될 경우ArgumentError오류를 발생시킵니다. 유효한 이벤트 유형은 영숫자, 밑줄(_), 콜론(:) 또는 공백()으로만 구성되어야 합니다. PR#3319: 루트 샘플링 설정 옵션 추가
이제
distributed_tracing.sampler.root사용하여 현재 서비스 내에서 발생하는 트래픽에 대한 샘플링 동작을 구성할 수 있습니다. PR#3330사용 가능한 모드는 네 가지입니다.
방법 설명 adaptive기존의 적응형 샘플러 알고리즘을 사용합니다. always_off루트 트레이스의 0%를 샘플링으로 표시합니다. always_on루트 트랜스의 100%를 샘플링으로 표시합니다. trace_id_ratio_baseddistributed_tracing.sampler.root.trace_id_ratio_based.ratio에 설정된 비율을 기반으로 샘플 트레이스를 추출합니다. 비율은 0.0에서 1.0 사이여야 합니다.: 트레이스 ID 비율 기반 샘플링 옵션 추가
에이전트는 이제 OpenTelemetry 트레이스 ID 비율 기반 샘플러 알고리즘을 사용하여 트레이스를 샘플링할 수 있습니다. PR#3330 이 샘플은 트레이스 ID를 기반으로 0.0에서 1.0 사이의 확률로 트레이스를 추출합니다.
이 옵션을 사용하려면 먼저 분산 추적 샘플러 설정을
trace_id_ratio_based으로 설정한 다음 해당distributed_tracing.sampler.*.trace_id_ratio_based.ratio샘플러를 0.0과 1.0 사이의 값으로 설정해야 합니다.예를 들어:
distributed_tracing.sampler.remote_parent_sampled: 'trace_id_ratio_based'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio': 0.5이 설정은 원격 부모가 샘플링되는 모든 트레이스에 대해 트레이의 약 50%를 샘플링합니다.
이 옵션은 다음 경우에 사용할 수 있습니다.
distributed_tracing.sampler.rootdistributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
기능: 에이전트 제어 상태 점검 파일에 엔티티 GUID 추가
제어 환경 내에서 시작되면 모든 프로세스에 대해 구성된 파일 위치에 상태 점검 파일이 생성됩니다. 이 파일에는 이제 에이전트와 관련된 엔티티의 GUID가 포함되어 있습니다(사용 가능한 경우). PR#3371
버그 수정: GCP 사용률 감지에서
NoMethodError오류를 해결합니다.이제 GCP 메타데이터 검색 로직은
nil또는 예상치 못한 값을 정상적으로 처리하여 서비스 초기화 충돌을 방지합니다. PR#3388