문제
분산 추적 을 활성화했지만 예상한 데이터가 New Relic의 분산 추적 UI에 표시되지 않습니다.
시작하기 전에
문제 해결을 수행하기 전에 다음을 수행하는 데 도움이 될 수 있습니다.
분산 추적 작동 방식에 대한 기술 세부 정보를 검토합니다.
샘플링 속도를 포함하여 트레이스 리소스의 개요를 보려면 로그 상태 앱을 사용하세요. 이는 누락된 범위와 조각화된 트레이를 이해하는 데 도움이 될 수 있습니다. 이를 찾으려면 다음으로 이동하세요.
one.newrelic.com > All capabilities > Apps > Distributed tracing instrumentation status
.
솔루션
누락된 추적 데이터에 대한 몇 가지 원인과 해결 방법은 다음과 같습니다.
활성화 또는 계측 문제
분산 추적이 추적의 모든 노드에 대한 세부 정보를 보고하려면 분산 추적이 활성화 된 New Relic 에이전트가 각 애플리케이션을 모니터링해야 합니다.
애플리케이션의 New Relic 계정에 분산 추적이 활성화되지 않은 경우 다음 문제가 발생합니다.
- 분산 추적 UI 페이지에는 데이터가 없습니다.
- 다른 계정의 분산 추적에 데이터를 보고하지 않습니다.
New Relic이 자동으로 계측하는 애플리케이션 및 서비스에 대해 분산 추적을 활성화하면 일반적으로 분산 추적 UI에서 해당 노드에 대한 완전하고 상세한 데이터를 볼 수 있습니다.
그러나 일부 서비스 또는 애플리케이션이 추적에서 누락되었거나 누락된 것으로 예상되는 내부 범위가 있음을 알 수 있습니다. 이 경우 추적에서 더 자세한 정보를 보기 위해 애플리케이션 또는 특정 트랜잭션의 사용자 지정 계측 을 구현하고자 할 수 있습니다. 이 작업을 수행해야 하는 경우의 몇 가지 예는 다음과 같습니다.
Transactions not automatically instrumented
. 자동으로 로그아웃되도록 하려면 사용 중인 뉴렐릭 에이전트에 대한 호환성 및 요구 사항 문서를 읽어보세요. 로그가 자동으로 로그아웃되지 않거나 특정 활동의 로그를 추가하려는 경우 사용자 정의 로그를 참조하세요.
All Go applications
. Go 에이전트는 다른 에이전트와 달리 코드를 수동으로 업로드해야 합니다. 지침은 소스 추가를 참조하세요.
A service doesn't use HTTP
. 서비스가 HTTP를 통해 통신하지 않는 경우, 방사능 에이전트는 방사능 추적 헤더를 보내지 않습니다. 이는 웹이 아닌 일부 애플리케이션이나 메시지 대기열의 경우일 수 있습니다. 이 문제를 해결하려면, 호출하거나 호출한 것에 대한 수신 거부 API 사용하세요.
스팬 문제
에이전트가 트레이스 관찰자에게 충분히 빠르게 데이터를 쓸 수 없는 경우 queue_size
은 에이전트가 보유할 범위 수를 제한하는 추가 APM 에이전트 설정입니다. 에이전트에 대한 다음 예를 참조하세요.
.NET 구성 방법 | 예시 |
---|---|
구성 파일 |
|
환경 변수 |
|
파이썬 구성 방법 | 예시 |
---|---|
구성 파일 |
|
환경 변수 |
|
때때로 헤더 전파가 성공하지만 스팬 정보가 New Relic으로 전송되지 않습니다. 예를 들어 OpenTelemetry가 New Relic 내보내기로 계측되지 않은 경우 스팬 세부 정보는 New Relic에 적용되지 않습니다.
이 다이어그램에서 헤더 전파가 성공했지만 서비스 2에서 익스포터가 New Relic으로 스팬을 보내도록 설정되지 않았음을 알 수 있습니다.
다음 다이어그램은 성공적인 헤더 전파도 보여주지만 여기에는 스팬 세부 정보를 New Relic으로 보내는 서비스 2의 내보내기가 포함되어 있습니다( Trace API 참조).
에 대한 표준 분산 추적은 적응형 샘플링을 사용합니다. 이는 서비스에 대한 호출의 일부가 보고서 트레이스의 일부로 보고된다는 것을 의미합니다. 귀하의 서비스에 대한 특정 통화가 샘플링되도록 선택되지 않았을 수 있습니다.
수집 및 표시할 수 있는 범위 수에는 제한이 있습니다 . 애플리케이션이 단일 호출에 대해 매우 많은 범위를 생성하는 경우 해당 수집 주기에 대한 APM 에이전트의 범위 수집 제한을 초과할 수 있습니다. 이로 인해 스팬이 누락되고 에이전트가 완전히 샘플링하고 보고할 수 있는 추적 수가 크게 제한될 수 있습니다.
현재 한 번에 10,000개의 스팬만 표시합니다.
추적 인덱스에서 캡처하려면 지난 60분 이내에 스팬을 보내야 합니다. 60분보다 오래되었지만 하루보다 최신인 스팬을 보내도 스팬 데이터는 계속 작성됩니다. 그러나 분산 추적 UI의 추적 목록을 제어하는 추적 색인으로 롤링되지 않습니다. 범위에 하루보다 오래된 타임스탬프가 있으면 삭제됩니다. 이는 시스템 또는 오래 실행되는 백그라운드 작업 간에 클럭 스큐(시간 차이)가 있을 때 자주 발생합니다.
중요
OpenTelemetry Protocol (줄여서 OTLP)을 통해 전송된 60분보다 긴 범위는 NRDB 에 기록되지 않아 다음과 같은 NrIntegrationError가 발생합니다.
The span timestamp cannot be older than 60 minutes.
추적 세부 정보 문제
프록시 및 기타 중개자에 대한 몇 가지 잠재적인 문제:
Incomplete trace. 일부 중개자는 분산 추적 헤더를 자동으로 전파하지 않습니다. 이 경우 헤더가 소스에서 대상으로 전달될 수 있도록 해당 구성 요소를 구성해야 합니다. 지침은 해당 중간 구성 요소에 대한 설명서를 참조하세요.
Missing intermediary in trace. 중개자가 뉴렐릭-모니터인 경우 해당 중개자에서 실행 중인 뉴렐릭 에이전트에 의해 생성되거나 업데이트되는
newrelic
헤더를 전파하는지 확인하세요. 이는 이전에 트레이스에 중개자가 표시되었지만 업스트림 엔터티(예: 브라우저-모니터 서버)에 대해 독립 추적이 활성화된 후에 사라진 경우에 나타날 수 있습니다.팁
일부 엔터티가 다른 추적 시스템에 추적 데이터를 보고하는 경우 New Relic UI의 추적 ID를 사용하여 누락된 범위에 대해 다른 추적 시스템을 검색할 수 있습니다.
체인의 각 에이전트가 W3C 추적 컨텍스트를 지원하는 경우 전체 추적으로 범위를 함께 연결할 수 있습니다. 체인의 일부가 W3C 추적 컨텍스트를 지원하지 않는 Zipkin과 같은 에이전트에서 가져온 경우 해당 에이전트에서 오는 범위는 추적에 포함되지 않을 수 있습니다.
추적에 여러 New Relic 계정이 모니터링하는 애플리케이션의 데이터가 포함되어 있고 사용자 권한으로 인해 해당 계정에 액세스할 수 없는 경우 일부 범위 및 서비스 세부 정보가 UI에서 난독화됩니다 .
예를 들어, 서비스와 연결된 계정에 대한 액세스 권한이 없는 경우 분산 추적 목록에 서비스 이름 대신 일련의 별표(*****)가 표시될 수 있습니다.
추적 목록은 첫 번째 범위가 수신된 후 20분 창에 캡처된 추적 색인에 의해 생성됩니다.
일반적으로 이것은 늦은 스팬 때문입니다.
긴 추적에 대해 비정상적으로 짧은 백엔드 시간이 표시되는 경우 전송되는 타임스탬프에 문제가 있을 수 있습니다.
예를 들어 루트 범위는 마이크로초를 밀리초로 다시 게시할 수 있습니다. 루트 범위가 브라우저 응용 프로그램인 경우에도 발생할 수 있습니다. 웹 브라우저와 같은 외부 클라이언트를 사용할 때 클럭 스큐(시간 차이)가 더 자주 발생할 수 있습니다.
브라우저 애플리케이션 문제
일부 에이전트의 이전 버전은 브라우저 애플리케이션에 대한 분산 추적과 호환되지 않습니다. 브라우저 애플리케이션이 호환되지 않는 에이전트를 실행하는 APM 애플리케이션에 AJAX 요청을 하는 경우 APM 에이전트는 해당 요청에 대한 트랜잭션 및 범위 데이터를 기록하지 못할 수 있습니다.
브라우저 응용 프로그램에 대해 분산 추적이 활성화되어 있고 다운스트림 APM 요청에 대한 트랜잭션 또는 범위 데이터가 표시되지 않는 경우 분산 추적 요구 사항에서 브라우저 데이터를 검토하고 모든 응용 프로그램이 지원되는 버전의 APM 에이전트를 실행하고 있는지 확인하십시오.
추적에 최종 사용자 범위가 누락된 것 같으면 브라우저 분산 추적 요구 사항 및 활성화 절차 를 읽고 이해했는지 확인하십시오.
AJAX UI 페이지 에는 해당 트레이스에 최종 사용자 스팬이 존재하는지 여부에 관계없이 분리 추적 UI 에 대한 링크가 있습니다. 범위를 생성하는 데이터에 대한 자세한 내용은 요구 사항을 참조하세요.
일부 에이전트의 이전 버전은 브라우저 애플리케이션에 대한 분산 추적과 호환되지 않습니다. 데이터베이스가 포함된 트레이스에서 APM 스팬이 일관되게 누락된 경우, 브라우저 데이터 DB 추적 요구 사항을 참조하고 모든 데이터베이스가 APM 에이전트의 지원되는 버전을 실행하고 있는지 확인하세요.
분리된 브라우저 범위의 다른 원인에 대해서는 브라우저 범위 보고 를 참조하십시오.
기타 문제
잠재적 원인: 앱 이름이 여러 개인 애플리케이션 의 경우 entity.name
속성은 기본 앱 이름에만 연결됩니다. 다른 앱 이름으로 검색하려면 appName
속성을 사용하여 검색하세요.
OpenTelemetry와의 통합에 대한 질문은 지원 포럼 에 문의해야 합니다.
액세스에 영향을 미치는 기타 요소
New Relic 기능에 액세스하는 능력에 영향을 줄 수 있는 요소에 대한 자세한 내용은 액세스 에 영향을 미치는 요소 를 참조하십시오.