분산 추적을 사용하면 분산 시스템 전체에서 요청의 전체 여정을 볼 수 있습니다. Python 에이전트의 경우 두 가지 유형의 분산 추적을 제공합니다. 자세한 내용은 범위 샘플링 작동 방식을 참조하세요.
표준(헤드 기반 샘플링): 추적이 도착하기 전에 수락하고 분석할 추적의 비율을 결정합니다. 이는 추적이 어떻게 도움이 되는지 확인할 수 있는 견고한 출발점을 제공합니다. Python 에이전트 7.0.0.166 이상에서는 기본적으로 켜져 있습니다. 무한 추적(꼬리 기반 샘플링): 당사의 클라우드 기반 서비스는 모든 추적을 수용한 다음 가장 중요한 추적을 찾기 위해 정렬합니다.표준 추적을 설정한 후에는 모든 추적을 분석하고 가장 중요한 추적을 샘플링하는 구성 옵션을 제공하므로 이 옵션을 추가하는 것이 좋습니다. 분산 추적을 시작하는 데 필요한 모든 단계는 다음과 같습니다.
새로운 Python 에이전트 표준 분산 추적(머리 기반 샘플링)을 시도하거나 무한 추적(꼬리 기반 샘플링)을 설정하려는 경우 표준 추적을 설정하여 시작해야 합니다.헤드 기반 샘플링을 진행하기 위해 APM 에이전트 설치 과정을 안내해 드립니다.그런 다음 선택 사항이지만 권장되는 무한 추적을 설정할 수 있습니다.
표준 분산 추적을 사용하려면 에이전트 설치 아직 서비스에 대한 APM 에이전트를 설치하지 않았거나 추가 서비스를 계측하려는 경우 표준 분산 추적 을 설정하는 가장 좋은 방법입니다.
이 APM 에이전트로 계측된 일부 서비스가 이미 있고 이를 분산 추적에 포함하려면 각 서비스에 대해 분산 추적을 수동으로 활성화해야 합니다.이전 Python 에이전트에 대한 옵션을 참조하세요.
1단계. 서비스 식별 계측하려는 서비스를 파악하여 각각 New Relic에 추적 데이터를 보내도록 합니다.
2단계. APM 에이전트로 각 서비스 계측 트랜잭션과 관련된 각 서비스에 대해 에이전트 설치 루틴을 반복합니다.일부 서비스에서 다른 언어를 사용하는 경우 해당 언어에 대한 설치 단계 를 반복하기만 하면 됩니다.
설치 루틴을 시작하려면 아래 타일을 클릭하십시오. 각 에이전트 설치를 마치면 여기로 돌아와서 추적 보기 에 대한 팁을 확인하십시오.
3단계. 추적 보기 APM 에이전트로 각 서비스를 계측한 후 일부 추적을 캡처할 수 있도록 애플리케이션에서 일부 트래픽을 생성합니다. 다음은 UI에서 추적을 보는 두 가지 방법입니다.
특정 서비스를 포함하는 trace 보기 다음은 특정 서비스에 대한 추적을 볼 수 있는 한 가지 방법입니다.
one.newrelic.com > All capabilities > APM & services 로 이동합니다.엔터티(서비스)를 클릭합니다. 왼쪽 창의 모니터 섹션에서 분산 추적 을 클릭합니다. 자세한 내용은 개별 추적을 클릭하십시오.상위 메뉴에 Groupsimilar traces 가 켜져 있으면 추적 그룹을 클릭한 다음 개별 추적을 클릭합니다. 원하는 추적이 표시되지 않으면 trace.id
으로 필터링할 수 있습니다. 계정 간 추적 보기 계정을 교차하는 추적을 보려면 다음 단계를 따르세요.
one.newrelic.com > All capabilities > Traces 으로 이동합니다.왼쪽 창에서 엔터티(서비스)를 선택합니다. 자세한 내용은 개별 추적을 클릭하십시오.상위 메뉴에 Groupsimilar traces 가 켜져 있으면 추적 그룹을 클릭한 다음 개별 추적을 클릭합니다. 원하는 추적이 표시되지 않으면 trace.id
으로 필터링할 수 있습니다. 추적 관련 로그 검사 로그와 추적 세부 정보를 함께 가져와 더 쉽고 빠르게 문제를 해결할 수 있습니다.컨텍스트의 로그를 사용하면 New Relic UI에서 추적과 함께 로그 메시지를 볼 수 있습니다.
특정 서비스가 포함된 추적 보기 또는 계정 간 추적 보기의 단계를 사용하여 흥미로운 추적을 찾은 후 다음을 수행합니다.
컨텍스트에서 로그를 활성화한 경우 추적 세부정보 옆에 있는 로그 탭을 클릭합니다. 개별 로그와 관련된 세부 정보를 보려면 메시지를 직접 클릭하십시오. UI에서 추적을 찾는 데 도움이 더 필요하면:
무한 추적 설정 APM 에이전트용 표준 분산 추적( 위 )은 추적의 최대 10%를 캡처하지만 당사가 모든 데이터를 분석하고 가장 관련성이 높은 추적을 찾기를 원하는 경우 무한 추적을 설정할 수 있습니다.
팁 이 기능에 대한 자세한 내용은 무한 추적 을 참조하십시오.
시작하기 전에 먼저 요구 사항을 충족하는지 확인하십시오.
1단계. 새 에이전트 설치 완료 무한 추적 설정은 표준 분산 추적을 위한 새 에이전트 설치 의 계측 단계를 기반으로 합니다.에이전트 설치를 완료한 후 추적 관찰자 설정을 계속하십시오.
2단계. 추적 관찰자 설정 추적 관찰자는 모든 추적을 수집하고 분석하는 New Relic AWS 기반 서비스입니다. 추적 관찰자 설정 의 지침을 따릅니다. 완료되면 추적 관찰자 정보와 함께 여기로 돌아와 에이전트를 구성하는 다음 단계를 계속합니다.
무한 추적 구성 설정에는 표준 분산 추적과 추적 관찰자에 대한 정보가 포함됩니다.Infinite Tracing에는 서버 측 구성을 사용할 수 없습니다.
Python 무한 추적 구성 다음은 설정에 대한 개요입니다. 구성에 대한 추가 도움말은 Python 에이전트 구성을 참조하세요.
유형
필수 구성
무한 추적
이 설치 명령으로 라이브러리를 풀다운한 다음 구성 파일 또는 환경 변수를 설정합니다.
$ pip install newrelic [ infinite-tracing ]
일반 구성 옵션:
구성 파일( newrelic.ini
):
distributed_tracing.enabled = true
infinite_tracing.trace_observer_host = YOUR_TRACE_OBSERVER_HOST
환경 변수:
NEW_RELIC_DISTRIBUTED_TRACING_ENABLED = true
NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST = " YOUR_TRACE_OBSERVER_HOST "
일괄 처리 및 압축 구성 옵션:
v8.7.0부터 Python 에이전트는 일괄 처리와 압축을 모두 지원합니다. 두 설정 모두 기본값은 true이며 다음 옵션으로 전환할 수 있습니다.
구성 파일( newrelic.ini
):
infinite_tracing.batching = true # Send spans to the trace observer in batches rather than one by one
infinite_tracing.compression = true # Enable gzip compression for data sent via Infinite Tracing
환경 변수:
NEW_RELIC_INFINITE_TRACING_BATCHING = true
NEW_RELIC_INFINITE_TRACING_COMPRESSION = true
팁 프록시 구성에 대한 도움이 필요한 경우 프록시 지원 을 참조하십시오.
4단계. (선택 사항) 무한 추적 사용자 지정 에이전트 구성 설정을 추가한 후 New Relic UI에서 데이터를 보기 시작해야 합니다. 데이터를 분석하는 데 시간을 보낸 후 Infinite Tracing의 일부 기능을 조정할 수 있습니다.
이전 Python 에이전트에 대한 옵션 이전 Python 에이전트가 있는 경우 활성화하기 전에 원하는 분산 추적 기능이 지원되는지 확인하십시오.
호환성 가이드 아래 호환성 정보를 검토한 후 이전 Python 에이전트 구성을 참조하세요 .
Python 에이전트 호환성 필요한 Python 에이전트 버전을 설치 하거나 업데이트 합니다. 최상의 결과를 얻으려면 최신 Python 에이전트 버전 으로 업데이트하십시오.
옵션
Python 에이전트 버전
표준 분산 추적
4.2.0.100 이상
W3C 추적 컨텍스트 사용: 5.6 이상
무한 추적
5.12.0.140(W3C 추적 컨텍스트 포함)
지원되는 환경: CPython만 해당(pypy는 지원되지 않음)
분산 추적을 사용하려면 아래 설정을 참조하세요.
Python 에이전트 구성 다음은 설정에 대한 개요입니다.구성에 대한 추가 도움말은 Python 에이전트 구성 을 참조하십시오.
유형
필수 구성
표준 분산 추적
구성 파일( newrelic.ini
):
distributed_tracing.enabled = true
환경 변수:
NEW_RELIC_DISTRIBUTED_TRACING_ENABLED = true
무한 추적
이전 에이전트가 무한 추적을 지원하는 경우 위 의 구성 단계를 참조하십시오.
수동 계측(자동 계측이 작동하지 않는 경우) 권장 사항: 사용자 지정 계측을 수행하기 전에 다음을 읽으십시오.
서비스가 추적 헤더를 다른 서비스로 전달하지 않는 경우 분산 추적 페이로드 API를 사용하여 호출 서비스 및 호출된 서비스를 계측할 수 있습니다. 호출 서비스는 API 호출을 사용하여 호출된 서비스에서 수락하는 페이로드를 생성합니다.
호출 서비스 계측 호출 서비스를 계측하려면:
호출 서비스를 모니터링 하는 APM 에이전트 버전이 분산 추적을 지원하는지 확인하십시오.
분산 추적 페이로드를 생성하기 위해 에이전트 API 호출을 호출합니다( Python 에이전트 API 참조).
중요 추적에서 범위의 적절한 순서를 유지하려면 페이로드를 보내는 범위의 컨텍스트에서 페이로드를 생성해야 합니다 .
대상 서비스에 대한 호출(예: 헤더)에 해당 페이로드를 추가합니다.
(선택 사항) 호출을 외부 호출로 식별합니다( Python 에이전트 API 참조).
호출된 서비스 계측 호출된 서비스를 계측하려면:
호출된 서비스를 모니터링 하는 APM 에이전트 버전이 분산 추적을 지원하는지 확인하십시오.
호출된 서비스의 New Relic 에이전트가 New Relic 트랜잭션을 식별하지 않는 경우 에이전트 API를 사용하여 트랜잭션을 선언합니다.다음은 트랜잭션이 진행 중이 아님을 알리는 한 가지 방법입니다. transaction = current_transaction()
이 실행될 때 transaction
은 None
입니다.또는 result = accept_distributed_trace_payload(payload)
이 실행되면 결과는 False
입니다.
웹이 아닌 거래 를 보고하려면 background_task
를 사용하세요. Python 계측에 대한 자세한 내용은 트랜잭션 및 세그먼트 모니터링 을 참조하세요.
수신한 호출에서 페이로드를 추출합니다(예: 헤더에서).
페이로드 수락을 위한 호출을 호출합니다( Python 에이전트 API 참조.