문제
분산 추적 을 활성화했지만 예상한 데이터가 New Relic의 분산 추적 UI에 표시되지 않습니다.
해결책
중요
문제 해결을 수행하기 전에 분산 추적 작동 방식 을 읽는 것이 좋습니다.
다음은 분산 추적 UI에서 예상 데이터를 찾는 데 문제가 있는 경우의 몇 가지 원인과 해결 방법입니다.
활성화 또는 계측 문제
분산 추적이 추적의 모든 노드에 대한 세부 정보를 보고하려면 분산 추적이 활성화 된 New Relic 에이전트가 각 애플리케이션을 모니터링해야 합니다.
애플리케이션의 New Relic 계정에 분산 추적이 활성화되지 않은 경우 다음 문제가 발생합니다.
- 분산 추적 UI 페이지에는 데이터가 없습니다.
- 다른 계정의 분산 추적에 데이터를 보고하지 않습니다.
New Relic이 자동으로 계측하는 애플리케이션 및 서비스에 대해 분산 추적을 활성화하면 일반적으로 분산 추적 UI에서 해당 노드에 대한 완전하고 상세한 데이터를 볼 수 있습니다.
그러나 일부 서비스 또는 애플리케이션이 추적에서 누락되었거나 누락된 것으로 예상되는 내부 범위가 있음을 알 수 있습니다. 이 경우 추적에서 더 자세한 정보를 보기 위해 애플리케이션 또는 특정 트랜잭션의 사용자 지정 계측 을 구현하고자 할 수 있습니다. 이 작업을 수행해야 하는 경우의 몇 가지 예는 다음과 같습니다.
- 트랜잭션이 자동으로 계측되지 않습니다. 애플리케이션이 자동으로 계측되도록 하려면 사용 중인 New Relic 에이전트에 대한 호환성 및 요구 사항 문서를 읽으십시오. 애플리케이션이 자동으로 계측되지 않거나 특정 활동의 계측을 추가하려는 경우 사용자 지정 계측을참조하세요.
- 모든 Go 애플리케이션 . Go 에이전트는 다른 에이전트와 달리 코드를 수동으로 계측해야 합니다. 지침 은 Go 애플리케이션 계측 을 참조하십시오.
- 서비스는 HTTP를 사용하지 않습니다 . 서비스가 HTTP를 통해 통신하지 않으면 New Relic 에이전트는 분산 추적 헤더를 보내지 않습니다. 이것은 웹이 아닌 일부 응용 프로그램이나 메시지 대기열의 경우일 수 있습니다. 이 문제를 해결하려면 분산 추적 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의 추적 목록을 제어하는 추적 색인으로 롤링되지 않습니다. 범위에 하루보다 오래된 타임스탬프가 있으면 삭제됩니다. 이는 시스템 또는 오래 실행되는 백그라운드 작업 간에 클럭 스큐(시간 차이)가 있을 때 자주 발생합니다.
중요
60분이 넘는 OpenTelemetry Protocol (줄여서 OTLP)을 통해 전송된 모든 범위는 NRDB에 기록되지 않아 다음 NrIntegrationError 를 생성합니다.
The span timestamp cannot be older than 60 minutes.
추적 세부 정보 문제
트랜잭션이 독점적인 New Relic 헤더만 보내는 경우 일부 미들웨어가 형식을 인식하지 못하고 다음 다이어그램과 같이 정보를 삭제할 수 있습니다.
한 가지 솔루션은 New Relic 에이전트를 W3C 추적 컨텍스트를 지원하는 버전으로 업그레이드하는 것입니다. 아래 다이어그램에서 W3C 호환 New Relic 에이전트는 두 개의 표준화된 헤더와 함께 이전 헤더를 전달합니다.
프록시 및 기타 중개자에 대한 몇 가지 잠재적인 문제:
불완전한 추적. 일부 중개자는 분산 추적 헤더 를 자동으로 전파하지 않습니다. 이 경우 헤더가 소스에서 대상으로 전달될 수 있도록 해당 구성요소를 구성해야 합니다. 지침은 해당 중간 구성 요소에 대한 설명서를 참조하십시오.
추적에 중개자가 없습니다. 중개자가 New Relic에서 모니터링하는 경우 해당 중개자에서 실행 중인 New Relic 에이전트가 생성하거나 업데이트한
newrelic
헤더를 전파하는지 확인합니다. 이는 중개자가 이전에 추적에서 볼 수 있었지만 업스트림 엔터티(예: 브라우저에서 모니터링되는 응용 프로그램)에 대해 분산 추적이 활성화된 후 사라질 때 나타날 수 있습니다.팁
일부 엔터티가 다른 추적 시스템에 추적 데이터를 보고하는 경우 New Relic UI의 추적 ID를 사용하여 누락된 범위에 대해 다른 추적 시스템을 검색할 수 있습니다.
체인의 각 에이전트가 W3C 추적 컨텍스트를 지원하는 경우 전체 추적으로 범위를 함께 연결할 수 있습니다. 체인의 일부가 W3C 추적 컨텍스트를 지원하지 않는 Zipkin과 같은 에이전트에서 가져온 경우 해당 에이전트에서 오는 범위는 추적에 포함되지 않을 수 있습니다.
추적에 여러 New Relic 계정이 모니터링하는 애플리케이션의 데이터가 포함되어 있고 사용자 권한으로 인해 해당 계정에 액세스할 수 없는 경우 일부 범위 및 서비스 세부 정보가 UI에서 난독화됩니다 .
예를 들어, 서비스와 연결된 계정에 대한 액세스 권한이 없는 경우 분산 추적 목록에 서비스 이름 대신 일련의 별표(*****)가 표시될 수 있습니다.
추적 목록은 첫 번째 범위가 수신된 후 20분 창에 캡처된 추적 색인에 의해 생성됩니다.
일반적으로 이것은 늦은 스팬 때문입니다.
긴 추적에 대해 비정상적으로 짧은 백엔드 시간이 표시되는 경우 전송되는 타임스탬프에 문제가 있을 수 있습니다.
예를 들어 루트 범위는 마이크로초를 밀리초로 다시 게시할 수 있습니다. 루트 범위가 브라우저 응용 프로그램인 경우에도 발생할 수 있습니다. 웹 브라우저와 같은 외부 클라이언트를 사용할 때 클럭 스큐(시간 차이)가 더 자주 발생할 수 있습니다.
브라우저 애플리케이션 문제
일부의 이전 버전 에이전트는 브라우저 애플리케이션에 대한 분산 추적과 호환되지 않습니다. 브라우저 애플리케이션이 호환되지 않는 에이전트를 실행하는 APM 애플리케이션에 AJAX 요청을 하는 경우 APM 에이전트는 해당 요청에 대한 트랜잭션 및 스팬 데이터를 기록하지 않을 수 있습니다.
브라우저 응용 프로그램에 대해 분산 추적이 활성화되어 있고 다운스트림 APM 요청에 대한 트랜잭션 또는 범위 데이터가 표시되지 않는 경우 분산 추적 요구 사항에서 브라우저 데이터를 검토하고 모든 응용 프로그램이 지원되는 버전의 APM 에이전트를 실행하고 있는지 확인하십시오.
추적에 최종 사용자 범위가 누락된 것 같으면 브라우저 분산 추적 요구 사항 및 활성화 절차 를 읽고 이해했는지 확인하십시오.
AJAX UI 페이지 에는 해당 추적에 최종 사용자 범위가 있는지 여부에 관계없이 분산 추적 UI에 대한 링크가 있습니다. 스팬을 생성하는 데이터에 대한 자세한 내용은 요구 사항 을 참조하십시오.
일부의 이전 버전 에이전트는 브라우저 애플리케이션에 대한 분산 추적과 호환되지 않습니다. 브라우저 애플리케이션을 포함하는 추적에서 APM 범위가 지속적으로 누락되는 경우 분산 추적 요구 사항의 브라우저 데이터를 참조하고 모든 애플리케이션이 지원되는 버전의 APM 에이전트를 실행하고 있는지 확인하십시오.
분리된 브라우저 범위의 다른 원인에 대해서는 브라우저 범위 보고 를 참조하십시오.
기타 문제
잠재적 원인: 앱 이름이 여러 개인 애플리케이션 의 경우 entity.name
속성은 기본 앱 이름에만 연결됩니다. 다른 앱 이름으로 검색하려면 appName
속성을 사용하여 검색하세요.
OpenTelemetry와의 통합에 대한 질문은 지원 포럼 에 문의해야 합니다.
액세스에 영향을 미치는 기타 요소
New Relic 기능에 액세스하는 능력에 영향을 줄 수 있는 요소에 대한 자세한 내용은 액세스 에 영향을 미치는 요소 를 참조하십시오.