통사론
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
보고 메시징 기능은 트랜잭션 추적 세그먼트입니다.
요구 사항
에이전트 버전 2.88.0.72 이상.
설명
message_transaction
(및 관련 호출)은 메시지 기능을 트랜잭션 으로 보고합니다. message_trace
은 추가 세그먼트 형태로 트랜잭션 추적 에 세부정보를 추가하는 데 사용됩니다. message_trace
는 메시지 함수의 데코레이터로 사용할 수 있는 MessageTraceWrapper
의 일부 를 반환합니다.
message_trace
데코레이터는 에이전트 버전이 2.102.0.85 이상인 생성기 및 코루틴에서 사용할 수 있습니다. 이러한 개체의 타이밍은 소비가 시작될 때 시작되고 개체가 소진되거나 범위를 벗어날 때 끝납니다. 이는 메트릭이 생성기 또는 코루틴 개체 자체를 생성하는 데 걸린 시간을 나타내는 이전 버전에서 변경된 사항입니다.
애플리케이션에서 데코레이터를 사용할 수 없는 경우 다음 다른 호출 형식 중 하나를 사용할 수 있습니다.
The context manager
: 컨텍스트 관리자 형식은
MessageTrace
입니다. 데코레이터와 동일한 반응이 필요합니다.The wrapper
: 래퍼 형식은
MessageTraceWrapper
입니다. 데코레이터를 사용하지 않고 래핑된 함수를 반환하는 데 사용할 수 있습니다.The path-based wrapper
: 경로 기반 래퍼 형식은
wrap_message_trace
입니다. 이는 Monkey 패치를 통해 지정된 객체에MessageTraceWrapper
적용합니다. 이는 데코레이터와 동일한 모범 사례와 추가module
및object_path
모범 사례를 사용합니다.
이러한 다른 호출 형식의 사용에 대한 설명은 다른 호출 형식 을 참조하십시오. 호출 예는 예 를 참조하십시오.
매개변수
message_trace에 대한 매개변수
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
message_trace
데코레이터는 다음 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
문자열 또는 함수 | 필수의. 사용 중인 메시지 브로커 유형의 이름(또는 유형)입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
문자열 또는 함수 | 필수의. 추적된 함수에서 발생하는 작업에 의해 표시된 대로 |
문자열 또는 함수 | 필수의. 작업의 대상이 되는 대상 유형입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. 일반적으로 |
문자열 또는 함수 | 필수의. 작업의 대상이 되는 대상의 이름입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
사전 | 선택 과목. 작업과 관련된 추가 세부정보입니다. 일반적으로 |
MessageTrace의 매개변수
newrelic.agent.MessageTrace(library, operation, destination_type, destination_name, params={})
MessageTrace
컨텍스트 관리자는 message_trace
에서 가져온 모든 매개변수 를 사용합니다.
MessageTraceWrapper의 매개변수
newrelic.agent.MessageTraceWrapper(wrapped, library, operation, destination_type, destination_name, params={})
MessageTraceWrapper
은 초기 wrapped
매개변수 외에 데코레이터 와 동일한 매개변수를 모두 사용합니다.
매개변수 | 설명 |
---|---|
기능 | 필수의. 메시지 브로커 시간을 나타내는 메시징 기능입니다. |
wrap_message_trace에 대한 매개변수
newrelic.agent.wrap_message_trace(module, object_path, library, operation, destination_type, destination_name, params={})
wrap_message_trace
은 module
매개변수 및 object_path
매개변수 외에 데코레이터 가 수행하는 모든 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
물체 | 필수의. 래핑할 개체를 포함하는 모듈입니다. |
끈 | 필수의. 래핑할 개체의 경로입니다. |
반환 값
message_trace
MessageTraceWrapper()
부분을 반환합니다.
예
message_trace 예제
message_trace
사용 예:
@message_trace('library', 'Consume', 'Exchange', 'x')def foo(): pass
기본 코루틴과 함께 message_trace
데코레이터를 사용하는 예:
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo(): pass
메시지 추적 예
MessageTrace
컨텍스트 관리자를 사용하는 예:
def basic_get(queue, no_ack=False): with MessageTrace('library', 'Consume', 'Exchange', 'x'): pass
MessageTraceWrapper 예
MessageTraceWrapper
사용 예:
wrapped_basic_get = newrelic.agent.MessageTraceWrapper(basic_get, 'library', 'Consume', 'Queue', 'x')
method_frame, header_frame, body = wrapped_basic_get('queue')
wrap_message_trace 예
wrap_message_trace
경로 기반 래퍼를 사용하는 예:
wrap_message_trace('module', 'Foo.bar', 'library', 'Produce', 'Exchange', 'x')