mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-02 11:31:52 +08:00
25 lines
731 B
Python
25 lines
731 B
Python
import sqlalchemy
|
|
|
|
from ddtrace.vendor.wrapt import wrap_function_wrapper as _w
|
|
|
|
from .engine import _wrap_create_engine
|
|
from ...utils.wrappers import unwrap
|
|
|
|
|
|
def patch():
|
|
if getattr(sqlalchemy.engine, '__datadog_patch', False):
|
|
return
|
|
setattr(sqlalchemy.engine, '__datadog_patch', True)
|
|
|
|
# patch the engine creation function
|
|
_w('sqlalchemy', 'create_engine', _wrap_create_engine)
|
|
_w('sqlalchemy.engine', 'create_engine', _wrap_create_engine)
|
|
|
|
|
|
def unpatch():
|
|
# unpatch sqlalchemy
|
|
if getattr(sqlalchemy.engine, '__datadog_patch', False):
|
|
setattr(sqlalchemy.engine, '__datadog_patch', False)
|
|
unwrap(sqlalchemy, 'create_engine')
|
|
unwrap(sqlalchemy.engine, 'create_engine')
|