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

사용자의 편의를 위해 제공되는 기계 번역입니다.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

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.