Skip to content

Commit 75fb63b

Browse files
committed
add possibility to instrument mutiple engines
1 parent 81fcad0 commit 75fb63b

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/__init__.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,6 @@ class SQLAlchemyInstrumentor(BaseInstrumentor):
7373
See `BaseInstrumentor`
7474
"""
7575

76-
def __new__(cls, *args, **kwargs):
77-
return object.__new__(cls, *args, **kwargs)
78-
7976
def instrumentation_dependencies(self) -> Collection[str]:
8077
return _instruments
8178

@@ -86,6 +83,7 @@ def _instrument(self, **kwargs):
8683
Args:
8784
**kwargs: Optional arguments
8885
``engine``: a SQLAlchemy engine instance
86+
``engines``: a list of SQLAlchemy engine instances
8987
``tracer_provider``: a TracerProvider, defaults to global
9088
9189
Returns:
@@ -111,6 +109,12 @@ def _instrument(self, **kwargs):
111109
kwargs.get("engine"),
112110
kwargs.get("enable_commenter", False),
113111
)
112+
if kwargs.get("engines") is not None and isinstance(kwargs.get("engines"), list):
113+
return [EngineTracer(
114+
_get_tracer(tracer_provider),
115+
engine,
116+
kwargs.get("enable_commenter", False),) for engine in kwargs.get("engines")]
117+
114118
return None
115119

116120
def _uninstrument(self, **kwargs):

instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,12 @@ def test_instrument_two_engines(self):
5555
engine_2 = create_engine("sqlite:///:memory:")
5656

5757
SQLAlchemyInstrumentor().instrument(
58-
engine=engine_1,
58+
engines=[engine_1, engine_2],
5959
tracer_provider=self.tracer_provider,
6060
)
61+
6162
cnx_1 = engine_1.connect()
6263
cnx_1.execute("SELECT 1 + 1;").fetchall()
63-
64-
SQLAlchemyInstrumentor().instrument(
65-
engine=engine_2,
66-
tracer_provider=self.tracer_provider,
67-
)
6864
cnx_2 = engine_2.connect()
6965
cnx_2.execute("SELECT 1 + 1;").fetchall()
7066

0 commit comments

Comments
 (0)