Skip to content

Commit 16392bd

Browse files
committed
feat(django): Add db.system
1 parent f106906 commit 16392bd

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

sentry_sdk/integrations/django/__init__.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import weakref
77

88
from sentry_sdk._types import TYPE_CHECKING
9-
from sentry_sdk.consts import OP
9+
from sentry_sdk.consts import OP, SPANDATA
1010
from sentry_sdk.hub import Hub, _should_send_default_pii
1111
from sentry_sdk.scope import add_global_event_processor
1212
from sentry_sdk.serializer import add_global_repr_processor
@@ -64,6 +64,7 @@
6464
from django.http.request import QueryDict
6565
from django.utils.datastructures import MultiValueDict
6666

67+
from sentry_sdk.tracing import Span
6768
from sentry_sdk.scope import Scope
6869
from sentry_sdk.integrations.wsgi import _ScopedResponse
6970
from sentry_sdk._types import Event, Hint, EventProcessor, NotImplementedType
@@ -578,7 +579,8 @@ def execute(self, sql, params=None):
578579

579580
with record_sql_queries(
580581
hub, self.cursor, sql, params, paramstyle="format", executemany=False
581-
):
582+
) as span:
583+
_set_db_system_on_span(span, self.db.vendor)
582584
return real_execute(self, sql, params)
583585

584586
def executemany(self, sql, param_list):
@@ -589,7 +591,8 @@ def executemany(self, sql, param_list):
589591

590592
with record_sql_queries(
591593
hub, self.cursor, sql, param_list, paramstyle="format", executemany=True
592-
):
594+
) as span:
595+
_set_db_system_on_span(span, self.db.vendor)
593596
return real_executemany(self, sql, param_list)
594597

595598
def connect(self):
@@ -601,10 +604,18 @@ def connect(self):
601604
with capture_internal_exceptions():
602605
hub.add_breadcrumb(message="connect", category="query")
603606

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)
605609
return real_connect(self)
606610

607611
CursorWrapper.execute = execute
608612
CursorWrapper.executemany = executemany
609613
BaseDatabaseWrapper.connect = connect
610614
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

Comments
 (0)