in aws_xray_sdk/ext/django/db.py [0:0]
def _patch_cursor(cursor_name, conn):
attr = '_xray_original_{}'.format(cursor_name)
if hasattr(conn, attr):
log.debug('django built-in db {} already patched'.format(cursor_name))
return
if not hasattr(conn, cursor_name):
log.debug('django built-in db does not have {}'.format(cursor_name))
return
setattr(conn, attr, getattr(conn, cursor_name))
meta = {}
if hasattr(conn, 'vendor'):
meta['database_type'] = conn.vendor
def cursor(self, *args, **kwargs):
host = None
user = None
if hasattr(self, 'settings_dict'):
settings = self.settings_dict
host = settings.get('HOST', None)
user = settings.get('USER', None)
if host:
meta['name'] = host
if user:
meta['user'] = user
original_cursor = getattr(self, attr)(*args, **kwargs)
return DjangoXRayTracedCursor(original_cursor, meta)
setattr(conn, cursor_name, cursor)