@@ -42,8 +42,17 @@ def sentry_patched_execute(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
4242 if client .get_integration (RedisIntegration ) is None :
4343 return old_execute (self , * args , ** kwargs )
4444
45- span_streaming = has_span_streaming_enabled (client .options )
45+ sentry_sdk .add_breadcrumb (
46+ message = "redis.pipeline.execute" ,
47+ type = "redis" ,
48+ category = "redis" ,
49+ data = {
50+ "redis.is_cluster" : is_cluster ,
51+ "redis.transaction" : False if is_cluster else self .transaction ,
52+ },
53+ )
4654
55+ span_streaming = has_span_streaming_enabled (client .options )
4756 span : "Union[Span, StreamedSpan]"
4857 if span_streaming :
4958 if sentry_sdk .traces .get_current_span () is None :
@@ -79,20 +88,7 @@ def sentry_patched_execute(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
7988 command_seq ,
8089 )
8190
82- rv = old_execute (self , * args , ** kwargs )
83-
84- with capture_internal_exceptions ():
85- sentry_sdk .add_breadcrumb (
86- message = "redis.pipeline.execute" ,
87- type = "redis" ,
88- category = "redis" ,
89- data = {
90- "redis.is_cluster" : is_cluster ,
91- "redis.transaction" : False if is_cluster else self .transaction ,
92- },
93- )
94-
95- return rv
91+ return old_execute (self , * args , ** kwargs )
9692
9793 pipeline_cls .execute = sentry_patched_execute
9894
@@ -118,6 +114,24 @@ def sentry_patched_execute_command(
118114 if integration is None :
119115 return old_execute_command (self , name , * args , ** kwargs )
120116
117+ db_properties = _compile_db_span_properties (integration , name , args )
118+
119+ breadcrumb_data = {
120+ "redis.is_cluster" : is_cluster ,
121+ "redis.command" : name ,
122+ "db.operation" : name ,
123+ }
124+ key = _extract_key (name , args )
125+ if key is not None :
126+ breadcrumb_data ["redis.key" ] = key
127+
128+ sentry_sdk .add_breadcrumb (
129+ message = db_properties ["description" ],
130+ type = "redis" ,
131+ category = "redis" ,
132+ data = breadcrumb_data ,
133+ )
134+
121135 span_streaming = has_span_streaming_enabled (client .options )
122136
123137 if span_streaming and sentry_sdk .traces .get_current_span () is None :
@@ -155,8 +169,6 @@ def sentry_patched_execute_command(
155169 )
156170 cache_span .__enter__ ()
157171
158- db_properties = _compile_db_span_properties (integration , name , args )
159-
160172 additional_db_span_attributes = {}
161173 with capture_internal_exceptions ():
162174 additional_db_span_attributes [SPANDATA .DB_QUERY_TEXT ] = _get_safe_command (
@@ -192,23 +204,6 @@ def sentry_patched_execute_command(
192204 _set_cache_data (cache_span , self , cache_properties , value )
193205 cache_span .__exit__ (None , None , None )
194206
195- with capture_internal_exceptions ():
196- data = {
197- "redis.is_cluster" : is_cluster ,
198- "redis.command" : name ,
199- "db.operation" : name ,
200- }
201- key = _extract_key (name , args )
202- if key is not None :
203- data ["redis.key" ] = key
204-
205- sentry_sdk .add_breadcrumb (
206- message = db_properties ["description" ],
207- type = "redis" ,
208- category = "redis" ,
209- data = data ,
210- )
211-
212207 return value
213208
214209 cls .execute_command = sentry_patched_execute_command
0 commit comments