통사론
newrelic.agent.external_trace(library, url, method=None)
외부 서비스에 대한 호출을 트랜잭션 추적 세그먼트로 보고합니다.
설명
external_trace
추가 세그먼트의 형태로 트랜잭션 추적 에 세부 정보를 추가하는 데 사용됩니다. external_trace
으로 보고된 모든 통화는 APM의 외부 탭에 표시됩니다. external_trace
은 외부 서비스를 호출하는 함수의 데코레이터로 사용할 수 있는 ExternalTraceWrapper
의 일부 를 반환합니다.
external_trace
데코레이터는 에이전트 버전이 2.102.0.85 이상인 생성기 및 코루틴에서 사용할 수 있습니다. 이러한 개체의 타이밍은 소비가 시작될 때 시작되고 개체가 소진되거나 범위를 벗어날 때 끝납니다. 이는 메트릭이 생성기 또는 코루틴 개체 자체를 생성하는 데 걸린 시간을 나타내는 이전 버전에서 변경된 사항입니다.
애플리케이션에서 데코레이터를 사용할 수 없는 경우 다음 다른 호출 형식 중 하나를 사용할 수 있습니다.
The context manager
: 컨텍스트 관리자 형식은
ExternalTrace
입니다.The wrapper
: 래퍼 형식은
ExternalTraceWrapper
입니다. 데코레이터를 사용하지 않고 래핑된 함수를 반환하는 데 사용할 수 있습니다.The path-based wrapper
: 경로 기반 래퍼 형식은
wrap_external_trace
입니다. 이는 Monkey 패치를 통해 지정된 객체에ExternalTraceWrapper
적용합니다. 이는 데코레이터와 동일한 모범 사례와 추가module
및object_path
모범 사례를 사용합니다.
이러한 다른 호출 형식의 사용에 대한 설명은 다른 호출 형식 을 참조하십시오. 호출 예는 예 를 참조하십시오.
매개변수
external_trace에 대한 매개변수
newrelic.agent.external_trace(library, url, method=None)
external_trace
데코레이터는 다음 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
문자열 또는 함수 | 필수의. 사용 중인 외부 라이브러리의 이름(또는 유형)입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
문자열 또는 함수 | 필수의. 라이브러리 호출에서 요청한 URL입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
문자열 또는 함수 | 선택 과목. 호출 유형을 정의하는 메소드. 일반적으로 |
ExternalTrace에 대한 매개변수
newrelic.agent.ExternalTrace(library, url, method=None)
ExternalTrace
컨텍스트 관리자는 external_trace
에서 가져온 모든 매개변수 를 사용합니다.
ExternalTraceWrapper용 매개변수
newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)
ExternalTraceWrapper
은 초기 wrapped
매개변수 외에 데코레이터 와 동일한 매개변수를 모두 사용합니다.
매개변수 | 설명 |
---|---|
기능 | 필수의. 외부 시간에 속성을 부여하는 외부 호출 기능. |
wrap_external_trace에 대한 매개변수
newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)
wrap_external_trace
은 module
매개변수 및 object_path
매개변수 외에 데코레이터 가 수행하는 모든 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
물체 | 필수의. 래핑할 개체를 포함하는 모듈입니다. |
끈 | 필수의. 래핑할 개체의 경로입니다. |
반환 값
external_trace
ExternalTraceWrapper()
부분을 반환합니다.
예
external_trace 예제
external_trace
사용 예:
@external_trace('library', 'http://example.com', 'get')def foo(): pass
네이티브 코루틴에서 external_trace
을 사용하는 예:
@external_trace('library', 'http://example.com', 'get')async def foo(): pass
외부 추적 예제
ExternalTrace
컨텍스트 관리자를 사용하는 예:
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): pass
ExternalTraceWrapper 예제
ExternalTraceWrapper
사용 예:
wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()
wrap_external_trace 예
wrap_external_trace
경로 기반 래퍼를 사용하는 예:
wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')