Skip to content

Commit 80969a0

Browse files
authoredMay 11, 2022
use sqlalchemy module name not engine. fixes #922 (#1086)
1 parent 3e67893 commit 80969a0

File tree

5 files changed

+23
-5
lines changed

5 files changed

+23
-5
lines changed
 

Diff for: ‎CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515
([#1055](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1055))
1616
- Refactoring custom header collection API for consistency
1717
([#1064](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1064))
18+
- `opentelemetry-instrumentation-sqlalchemy` will correctly report `otel.library.name`
19+
([#1086](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1086))
1820

1921
### Added
2022
- `opentelemetry-instrument` and `opentelemetry-bootstrap` now include a `--version` flag

Diff for: ‎instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def _instrument(self, **kwargs):
104104

105105
if kwargs.get("engine") is not None:
106106
return EngineTracer(
107-
_get_tracer(kwargs.get("engine"), tracer_provider),
107+
_get_tracer(tracer_provider),
108108
kwargs.get("engine"),
109109
kwargs.get("enable_commenter", False),
110110
)

Diff for: ‎instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/engine.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
from sqlalchemy.event import listen # pylint: disable=no-name-in-module
1717

1818
from opentelemetry import trace
19+
from opentelemetry.instrumentation.sqlalchemy.package import (
20+
_instrumenting_module_name,
21+
)
1922
from opentelemetry.instrumentation.sqlalchemy.version import __version__
2023
from opentelemetry.instrumentation.utils import (
2124
_generate_opentelemetry_traceparent,
@@ -40,9 +43,9 @@ def _normalize_vendor(vendor):
4043
return vendor
4144

4245

43-
def _get_tracer(engine, tracer_provider=None):
46+
def _get_tracer(tracer_provider=None):
4447
return trace.get_tracer(
45-
_normalize_vendor(engine.name),
48+
_instrumenting_module_name,
4649
__version__,
4750
tracer_provider=tracer_provider,
4851
)
@@ -55,7 +58,7 @@ def _wrap_create_async_engine_internal(func, module, args, kwargs):
5558
object that will listen to SQLAlchemy events.
5659
"""
5760
engine = func(*args, **kwargs)
58-
EngineTracer(_get_tracer(engine, tracer_provider), engine.sync_engine)
61+
EngineTracer(_get_tracer(tracer_provider), engine.sync_engine)
5962
return engine
6063

6164
return _wrap_create_async_engine_internal
@@ -68,7 +71,7 @@ def _wrap_create_engine_internal(func, module, args, kwargs):
6871
object that will listen to SQLAlchemy events.
6972
"""
7073
engine = func(*args, **kwargs)
71-
EngineTracer(_get_tracer(engine, tracer_provider), engine)
74+
EngineTracer(_get_tracer(tracer_provider), engine)
7275
return engine
7376

7477
return _wrap_create_engine_internal

Diff for: ‎instrumentation/opentelemetry-instrumentation-sqlalchemy/src/opentelemetry/instrumentation/sqlalchemy/package.py

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
_instrumenting_module_name = "opentelemetry.instrumentation.sqlalchemy"
1516

1617
_instruments = ("sqlalchemy",)

Diff for: ‎instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy.py

+12
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ async def run():
7070
self.assertEqual(len(spans), 1)
7171
self.assertEqual(spans[0].name, "SELECT :memory:")
7272
self.assertEqual(spans[0].kind, trace.SpanKind.CLIENT)
73+
self.assertEqual(
74+
spans[0].instrumentation_scope.name,
75+
"opentelemetry.instrumentation.sqlalchemy",
76+
)
7377

7478
asyncio.get_event_loop().run_until_complete(run())
7579

@@ -104,6 +108,10 @@ def test_create_engine_wrapper(self):
104108
self.assertEqual(len(spans), 1)
105109
self.assertEqual(spans[0].name, "SELECT :memory:")
106110
self.assertEqual(spans[0].kind, trace.SpanKind.CLIENT)
111+
self.assertEqual(
112+
spans[0].instrumentation_scope.name,
113+
"opentelemetry.instrumentation.sqlalchemy",
114+
)
107115

108116
def test_custom_tracer_provider(self):
109117
provider = TracerProvider(
@@ -154,6 +162,10 @@ async def run():
154162
self.assertEqual(len(spans), 1)
155163
self.assertEqual(spans[0].name, "SELECT :memory:")
156164
self.assertEqual(spans[0].kind, trace.SpanKind.CLIENT)
165+
self.assertEqual(
166+
spans[0].instrumentation_scope.name,
167+
"opentelemetry.instrumentation.sqlalchemy",
168+
)
157169

158170
asyncio.get_event_loop().run_until_complete(run())
159171

0 commit comments

Comments
 (0)
Please sign in to comment.