12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- import functools
16
15
import json
17
16
import logging
18
17
import re
31
30
from newrelic .api .transaction import current_transaction
32
31
from newrelic .common .async_wrapper import async_wrapper as get_async_wrapper
33
32
from newrelic .common .object_wrapper import (
34
- FunctionWrapper ,
35
33
ObjectProxy ,
36
34
function_wrapper ,
37
35
wrap_function_wrapper ,
@@ -59,7 +57,7 @@ def extract_sqs(*args, **kwargs):
59
57
return queue_value .rsplit ("/" , 1 )[- 1 ]
60
58
61
59
62
- def extract_agent_attrs (* args , ** kwargs ):
60
+ def extract_sqs_agent_attrs (* args , ** kwargs ):
63
61
# Try to capture AWS SQS info as agent attributes. Log any exception to debug.
64
62
agent_attrs = {}
65
63
try :
@@ -848,29 +846,8 @@ def sqs_message_trace(
848
846
async_wrapper = None ,
849
847
extract_agent_attrs = None ,
850
848
):
851
- return functools .partial (
852
- SQSMessageTraceWrapper ,
853
- operation = operation ,
854
- destination_type = destination_type ,
855
- destination_name = destination_name ,
856
- params = params ,
857
- terminal = terminal ,
858
- async_wrapper = async_wrapper ,
859
- extract_agent_attrs = extract_agent_attrs ,
860
- )
861
-
862
-
863
- def SQSMessageTraceWrapper (
864
- wrapped ,
865
- operation ,
866
- destination_type ,
867
- destination_name ,
868
- params = {},
869
- terminal = True ,
870
- async_wrapper = None ,
871
- extract_agent_attrs = None ,
872
- ):
873
- def _nr_message_trace_wrapper_ (wrapped , instance , args , kwargs ):
849
+ @function_wrapper
850
+ def _nr_sqs_message_trace_wrapper_ (wrapped , instance , args , kwargs ):
874
851
wrapper = async_wrapper if async_wrapper is not None else get_async_wrapper (wrapped )
875
852
if not wrapper :
876
853
parent = current_trace ()
@@ -889,7 +866,7 @@ def _nr_message_trace_wrapper_(wrapped, instance, args, kwargs):
889
866
_operation ,
890
867
_destination_type ,
891
868
_destination_name ,
892
- params = {} ,
869
+ params = params ,
893
870
terminal = terminal ,
894
871
parent = parent ,
895
872
source = wrapped ,
@@ -905,7 +882,7 @@ def _nr_message_trace_wrapper_(wrapped, instance, args, kwargs):
905
882
with trace :
906
883
return wrapped (* args , ** kwargs )
907
884
908
- return FunctionWrapper ( wrapped , _nr_message_trace_wrapper_ )
885
+ return _nr_sqs_message_trace_wrapper_
909
886
910
887
911
888
CUSTOM_TRACE_POINTS = {
@@ -919,13 +896,13 @@ def _nr_message_trace_wrapper_(wrapped, instance, args, kwargs):
919
896
("dynamodb" , "query" ): datastore_trace ("DynamoDB" , extract ("TableName" ), "query" ),
920
897
("dynamodb" , "scan" ): datastore_trace ("DynamoDB" , extract ("TableName" ), "scan" ),
921
898
("sqs" , "send_message" ): sqs_message_trace (
922
- "Produce" , "Queue" , extract_sqs , extract_agent_attrs = extract_agent_attrs
899
+ "Produce" , "Queue" , extract_sqs , extract_agent_attrs = extract_sqs_agent_attrs
923
900
),
924
901
("sqs" , "send_message_batch" ): sqs_message_trace (
925
- "Produce" , "Queue" , extract_sqs , extract_agent_attrs = extract_agent_attrs
902
+ "Produce" , "Queue" , extract_sqs , extract_agent_attrs = extract_sqs_agent_attrs
926
903
),
927
904
("sqs" , "receive_message" ): sqs_message_trace (
928
- "Consume" , "Queue" , extract_sqs , extract_agent_attrs = extract_agent_attrs
905
+ "Consume" , "Queue" , extract_sqs , extract_agent_attrs = extract_sqs_agent_attrs
929
906
),
930
907
("bedrock-runtime" , "invoke_model" ): wrap_bedrock_runtime_invoke_model (response_streaming = False ),
931
908
("bedrock-runtime" , "invoke_model_with_response_stream" ): wrap_bedrock_runtime_invoke_model (
0 commit comments