통사론
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
보고 메시지는 트랜잭션으로 기능합니다.
요구 사항
에이전트 버전 2.88.0.72 이상.
설명
이 데코레이터는 메시징 기능의 데코레이터로 사용할 수 있는 MessageTransactionWrapper
의 일부 를 반환합니다. 사용되는 경우 반환된 데코레이터는 메시지 트랜잭션 및 해당 메시지 관련 속성 을 기록합니다.
데코레이터가 애플리케이션에서 작동하지 않으면 다음 중 하나를 사용할 수 있습니다.
The context manager
: 컨텍스트 관리자 형식은
MessageTransaction
입니다. 데코레이터와 동일한 반응이 필요합니다.The wrapper
: 래퍼 형식은
MessageTransactionWrapper
입니다. 데코레이터를 사용하지 않고 래핑된 함수를 반환하는 데 사용할 수 있습니다.The path-based wrapper
: 경로 기반 래퍼 형식은
wrap_message_transaction
입니다. 이는 Monkey 패치를 통해 지정된 객체에MessageTransactionWrapper
적용합니다. 이는 데코레이터와 동일한 모범 사례와 추가module
및object_path
모범 사례를 사용합니다.
이러한 다른 호출을 사용해야 하는 경우에 대한 설명은 다른 호출 형식 을 참조하십시오. 호출 예는 예 를 참조하십시오.
매개변수
message_transaction 및 MessageTransaction에 대한 매개변수
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
newrelic.agent.MessageTransaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
데코레이터와 컨텍스트 관리자는 다음 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
문자열 또는 함수 | 필수의. 사용 중인 메시지 브로커의 이름(또는 유형)입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
문자열 또는 함수 | 필수의. 작업의 대상이 되는 대상 유형입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. 일반적으로 |
문자열 또는 함수 | 필수의. 작업의 대상이 되는 대상의 이름입니다. 그것을 정의하는 문자열이나 그것을 반환하는 함수를 전달하십시오. |
애플리케이션 | 필수의. |
문자열 또는 함수 | 선택 과목. 메시지의 라우팅 키입니다. |
문자열 또는 함수 | 선택 과목. 메시지의 교환 유형입니다. |
사전 또는 기능 | 선택 과목. 메시지의 헤더입니다. |
문자열 또는 함수 | 선택 과목. 메시지의 대기열 이름 속성입니다. |
문자열 또는 함수 | 선택 과목. 메시지의 |
문자열 또는 함수 | 선택 과목. 메시지의 |
MessageTransactionWrapper의 매개변수
newrelic.agent.MessageTransactionWrapper(wrapped, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
MessageTransactionWrapper
은 이 wrapped
매개변수 외에 데코레이터 와 동일한 매개변수를 모두 사용합니다.
매개변수 | 설명 |
---|---|
기능 | 필수의. 메시지 브로커 시간을 나타내는 메시징 기능입니다. |
wrap_message_transaction 매개변수
newrelic.agent.wrap_message_transaction(module, object_path, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
module
매개변수 및 object_path
매개변수 외에 데코레이터 가 수행하는 모든 매개변수를 사용합니다.
매개변수 | 설명 |
---|---|
물체 | 필수의. 래핑할 개체를 포함하는 모듈입니다. |
끈 | 필수의. 래핑할 개체의 경로입니다. |
반환 값
데코레이터 message_transaction
은 MessageTransactionWrapper
부분을 반환합니다.
예
message_transaction 예시
데코레이터의 예:
mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mtdef foo(): pass
메시지 트랜잭션 예제
컨텍스트 관리자를 사용하는 예:
def callback(method, properties, body): with MessageTransaction('library', 'Exchange', 'x', application=app): pass
MessageTransactionWrapper 예
래퍼를 사용한 예:
basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')
wrap_message_transaction 예시
경로 기반 래퍼를 사용하는 예:
wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')