6
6
import weakref
7
7
8
8
from sentry_sdk ._types import TYPE_CHECKING
9
- from sentry_sdk .consts import OP
9
+ from sentry_sdk .consts import OP , SPANDATA
10
10
from sentry_sdk .hub import Hub , _should_send_default_pii
11
11
from sentry_sdk .scope import add_global_event_processor
12
12
from sentry_sdk .serializer import add_global_repr_processor
64
64
from django .http .request import QueryDict
65
65
from django .utils .datastructures import MultiValueDict
66
66
67
+ from sentry_sdk .tracing import Span
67
68
from sentry_sdk .scope import Scope
68
69
from sentry_sdk .integrations .wsgi import _ScopedResponse
69
70
from sentry_sdk ._types import Event , Hint , EventProcessor , NotImplementedType
@@ -578,7 +579,8 @@ def execute(self, sql, params=None):
578
579
579
580
with record_sql_queries (
580
581
hub , self .cursor , sql , params , paramstyle = "format" , executemany = False
581
- ):
582
+ ) as span :
583
+ _set_db_system_on_span (span , self .db .vendor )
582
584
return real_execute (self , sql , params )
583
585
584
586
def executemany (self , sql , param_list ):
@@ -589,7 +591,8 @@ def executemany(self, sql, param_list):
589
591
590
592
with record_sql_queries (
591
593
hub , self .cursor , sql , param_list , paramstyle = "format" , executemany = True
592
- ):
594
+ ) as span :
595
+ _set_db_system_on_span (span , self .db .vendor )
593
596
return real_executemany (self , sql , param_list )
594
597
595
598
def connect (self ):
@@ -601,10 +604,18 @@ def connect(self):
601
604
with capture_internal_exceptions ():
602
605
hub .add_breadcrumb (message = "connect" , category = "query" )
603
606
604
- with hub .start_span (op = OP .DB , description = "connect" ):
607
+ with hub .start_span (op = OP .DB , description = "connect" ) as span :
608
+ _set_db_system_on_span (span , self .vendor )
605
609
return real_connect (self )
606
610
607
611
CursorWrapper .execute = execute
608
612
CursorWrapper .executemany = executemany
609
613
BaseDatabaseWrapper .connect = connect
610
614
ignore_logger ("django.db.backends" )
615
+
616
+
617
+ # https://github.com/django/django/blob/6a0dc2176f4ebf907e124d433411e52bba39a28e/django/db/backends/base/base.py#L29
618
+ # Avaliable in Django 1.8+
619
+ def _set_db_system_on_span (span , vendor ):
620
+ # type: (Span, str) -> None
621
+ span .set_data (SPANDATA .DB_SYSTEM , vendor )
0 commit comments