• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

create_distributed_trace_payload(파이썬 에이전트 API)

통사론

newrelic.agent.create_distributed_trace_payload()

이 방법은 분산 추적 내에서 트랜잭션을 연결하는 데 사용되는 페이로드를 생성하는 데 사용됩니다.

요구 사항

Python 에이전트 버전 4.2.0.100 이상.

주의

이 API는 더 이상 사용되지 않습니다. 대신 newrelic.agent.insert_distributed_trace_headers ) 사용하십시오.

분산 추적을 활성화 해야 합니다.

설명

이 API를 사용하려면 분산 추적을 사용하도록 설정 해야 합니다.

파트너 호출 accept_distributed_trace_payload 과 함께 이 호출을 사용하는 방법에 대한 지침은 에이전트 API로 분산 추적 사용 을 참조하십시오.

이 호출은 분산 추적을 구현하는 데 사용됩니다. accept_distributed_trace_payload 메소드를 사용하여 수신 애플리케이션에서 읽는 페이로드를 생성합니다.

반환 값

성공하면 Python의 기본 제공 dict 유형에서 상속되고 다음과 같은 추가 메서드가 있는 DistributedTracePayload 객체를 반환합니다.

  • text: 페이로드의 JSON 인코딩된 문자열 버전을 생성합니다.
  • http_safe: 페이로드의 base64로 인코딩된 문자열 버전을 생성합니다.

실패하면 None 을 반환합니다. 이는 분산 추적이 활성화되지 않았거나 활성 트랜잭션 외부에서 호출될 때 발생할 수 있습니다.

중요

추적에서 범위의 적절한 순서를 유지하려면 페이로드를 보내는 범위의 컨텍스트에서 페이로드를 생성해야 합니다.

백그라운드 작업 내에서 분산 추적 페이로드 만들기

단일 백그라운드 작업 내에서 두 개의 외부 추적 을 만드는 데 create_distributed_trace_payload 을 사용하는 예:

@newrelic.agent.background_task()
def main(url):
header_key = newrelic.agent.ExternalTrace.cat_distributed_trace_key
with newrelic.agent.ExternalTrace('my_external_library', url, method='GET'):
# Generate the payload in the context of the ExternalTrace
# span that sends it
payload = newrelic.agent.create_distributed_trace_payload()
headers = {header_key: payload.http_safe()}
response = my_external_library._get(url, headers=headers)
data = _process_response(response)
with newrelic.agent.ExternalTrace('my_external_library', url, method='POST'):
# Generate the payload in the context of the ExternalTrace
# span that sends it
payload = newrelic.agent.create_distributed_trace_payload()
headers = {header_key: payload.http_safe()}
response = my_external_library._post(url, data=data, headers=headers)

외부 추적 내부에 분산 추적 페이로드 만들기

외부 추적 을 생성할 때 create_distributed_trace_payload 을 사용하는 예:

def _bind_url(url, *args, **kwargs):
# _bind_url is called with the args and kwargs sent to the `get`
# method below
return url
@newrelic.agent.external_trace('my_external_library', _bind_url, method='GET')
def get(url):
payload = newrelic.agent.create_distributed_trace_payload()
header_key = newrelic.agent.ExternalTrace.cat_distributed_trace_key
headers = {header_key: payload.http_safe()}
return my_external_library._get(url, headers=headers)
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.