반사 추적을 사용하면 반사 시스템 전반에 걸쳐 requests 의 전체 과정을 볼 수 있습니다. Go 에이전트의 경우, 두 가지 유형의 분산 추적 기능을 제공합니다(자세한 내용은 스팬 샘플링 작동 방식 참조).
표준(헤드 기반): 트레이가 도착하기 전에 우리는 트레이의 일정 비율을 승인하고 분석할지 결정합니다. 이는 추적 기능이 어떻게 도움이 될 수 있는지 파악하는 데 있어 확실한 출발점을 제공합니다. Go 에이전트 3.16.0 이상 버전에서는 기본적으로 활성화되어 있습니다. 기본적으로 Go 에이전트는 분당 10개의 트레이스를 샘플링하며, 최대 스팬 제한은 분당 2000개 스팬입니다.
Infinite Tracing(테일 기반): 당사의 클라우드 기반 서비스는 귀하의 모든 트레이스를 수용한 다음 이를 정렬하여 가장 중요한 트레이스를 찾습니다. Infinite Tracing은 모든 트레이스를 분석하고 사용자에게 가장 중요한 트레이스를 샘플링할 수 있는 설정 옵션을 제공합니다.
표준 분산 추적(헤드 기반 샘플링)을 시도하거나 무한 추적(테일 기반 샘플링)을 설정하려는 경우 표준 추적 설정부터 시작해야 합니다.
표준 분산 추적
이는 서비스에 대한 APM 에이전트를 아직 설치하지 않은 경우 표준 분산 추적을 설정하는 가장 좋은 방법입니다.
팁
방사능 Go 에이전트를 설치하면 기본적으로 표준복원 추적이 켜져 있습니다. 이 기능을 끄고 싶다면 설정 가이드를 참조하세요.
서비스 식별
어떤 서비스가 요청에 영향을 미치는지 파악하여 각 서비스를 계측하여 New Relic에 추적 데이터를 보낼 수 있습니다.
APM 에이전트를 사용하여 각 서비스를 조정합니다.
트랜잭션과 관련된 각 서비스에 대해 에이전트를 별도로 설치해야 합니다. 일부 서비스가 다른 언어를 사용하는 경우 해당 언어에 대한 설치 단계를 반복하면 됩니다.
팁
Go 에이전트를 사용하려면 다른 뉴렐릭 에이전트의 자동 측정, 자동 로그와 달리 Go 서비스를 수동으로 로그아웃해야 합니다. 이는 Go 에이전트를 사용하려면 코드에 몇 줄을 추가해야 함을 의미합니다. 아래에서 설치를 시작하면 이에 대해 알게 됩니다.
설치 루틴을 시작하려면 아래 타일을 클릭하십시오. 각 에이전트 설치를 마치면 여기로 돌아와서 추적 보기에 대한 팁을 확인하십시오.
Go 에이전트 및 분산 추적의 모든 설치에는 Go 에이전트 구성 설정 에 나열된 설정을 사용하여 수동 계측이 필요합니다.그러나 설정을 최적화하기 위해 몇 가지 추가 구성을 수행해야 할 수도 있습니다.다음은 트랜잭션 및 HTTP 요청을 계측하기 위한 몇 가지 지침입니다.
Go의 http.ServeMux 를 사용 중이고 New Relic의 분산 추적을 활성화하려면 Go 애플리케이션이 New Relic의 WrapHandle 및 WrapHandleFunc 래퍼로 계측되어야 합니다. 이러한 래퍼는 자동으로 올바른 분산 추적 헤더를 추가하는 요청 및 응답 작성기로 트랜잭션을 시작하고 종료합니다. 헤더 전파 작동 방식에 대한 자세한 내용은 분산 추적 작동 방식 을 참조하세요.
// Distributed tracing headers are not added to the outgoing request.
// Use newrelic.NewRoundTripper or newrelicc.StartExternalSegment instead.
defer newrelic.ExternalSegment{
StartTime: txn.StartSegmentNow(),
URL: url,
}.End()
return http.Get(url)
}
분산 추적 페이로드에는 New Relic이 여러 서비스에서 발생하는 트랜잭션을 완전한 트랜잭션 추적으로 결합할 수 있도록 하는 정보가 포함되어 있습니다. New Relic이 모니터링하는 서비스가 서로에게 추적 컨텍스트를 보내지 않으면 불완전한 추적 세부 정보가 생성됩니다.
아래 API 호출을 사용하여 분산 추적을 구현하는 방법에 대한 일반적인 지침은 먼저 분산 추적 API 사용 을 참조하세요.