104 Commits

Author SHA1 Message Date
79d62b3bcd sqlalchemy wrap_create_engine now accepts sqlcommenter options (#1873)
* sqlalchemy wrap_create_engine accepts sqlcommenter options

* Changelog

* Lint

* Fix default val

* Add sqlalchemy tests

* Change a default in _instrument get

* Lint

* More lint

* Update default

Co-authored-by: Shalev Roda <65566801+shalevr@users.noreply.github.com>

* Update args doc

* lintttt

---------

Co-authored-by: Shalev Roda <65566801+shalevr@users.noreply.github.com>
2023-06-27 13:43:35 +03:00
2e49ba1af8 Use a weak reference to sqlalchemy Engine to avoid memory leak (#1771)
* Use a weak reference to sqlalchemy Engine to avoid memory leak

Closes #1761

By using a weak reference to the `Engine` object, we can avoid the memory leak as disposed `Engines` get properly deallocated. Whenever `SQLAlchemy` is uninstrumented, we only trigger a removal for those event listeners which are listening for objects that haven't been garbage-collected yet.

* Made a mistake in resolving the weak reference

* Fixed formatting issues

* Updated changelog

* Added unit test to check that engine was garbage collected

* Do not save engine in EngineTracer to avoid memory leak

* Add an empty line to satisfy black formatter

* Fix isort complaints

* Fixed the issue when pool name is not set and =None

* Fix formatting issue

* Rebased after changes in a recent commit

* Updated PR number in changelog

---------

Co-authored-by: Shalev Roda <65566801+shalevr@users.noreply.github.com>
2023-06-27 11:37:27 +03:00
afd8428997 Update version to 1.19.0.dev/0.40b0.dev (#1797)
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2023-05-17 10:47:58 -06:00
1a1163e919 Expand sqlalchemy pool.name to follow the semantic conventions (#1778) 2023-05-06 23:09:52 +05:30
e4d8f10ecd Update version to 1.18.0.dev/0.39b0.dev (#1723) 2023-03-22 22:01:45 +05:30
7ffbfc302e Add metrics instrumentation sqlalchemy (#1645) 2023-02-26 20:21:42 +05:30
3bcc043e9d Add connection attributes to sqlalchemy connect span (#1608)
* Add connection attributes to sqlalchemy connect span

* Fix formatting

* Move changelog entry to unreleased section

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
Co-authored-by: Shalev Roda <65566801+shalevr@users.noreply.github.com>
2023-02-20 17:17:18 +00:00
482804451a Update version to 1.17.0.dev/0.38b0.dev (#1677)
* Update version to 1.17.0.dev/0.38b0.dev

* Update SHA

---------

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2023-02-17 11:42:54 -06:00
bbe7578d17 Fix sqlalchemy uninstrument (#1581) 2023-01-29 09:43:06 +05:30
43d0c6cae3 fix the instantiation of NoOpTracerProvider (#1577) 2023-01-12 17:16:03 +00:00
346160467f add a test using NoOpTracerProvider - sqlalchemy (#1508) 2023-01-01 18:33:34 +00:00
0f2451be26 Update version to 1.16.0.dev/0.37b0.dev (#1485) 2022-12-10 04:03:22 +05:30
71781d3964 updating changelogs and version to 1.15.0-0.36b0 (#1482) 2022-12-10 02:33:51 +05:30
cfd017e5ec fix enable_commenter functionality (#1440) 2022-12-06 20:22:38 +05:30
99e0b42635 Add uninstrument test for sqlalchemy (#1471) 2022-12-05 22:28:10 +05:30
be4ceec08c Strip leading comments from SQL queries when generating the span name. (#1434)
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2022-11-18 14:01:07 +01:00
af972a07a9 Create RELEASING.md, Update version to 1.15.0.dev/0.36b0.dev (#1429) 2022-11-03 13:26:58 -07:00
05e23cd280 [release/v1.14.x-0.35bx] Prepare release 1.14.0/0.35b0 (#1428) 2022-11-03 10:30:35 -07:00
5c67dee23d Change to use local dev versions (#1425) 2022-11-02 10:19:40 -07:00
38d384a2ae Add support for py3.11 (#1415) 2022-10-31 21:19:50 +00:00
b2923e02fa updating changelogs and version to 1.13.0-0.34b0 (#1352) 2022-09-27 03:12:18 +05:30
7c8e3072ec Update package metadata opentelemetry-instrumentation-sqlalchemy (#1295) 2022-09-14 00:23:11 +05:30
32d7ff4082 Flask sqlalchemy psycopg2 integration (#1224) 2022-09-08 20:18:27 +00:00
03d97ffaf9 Remove support for 3.6 (#853) 2022-08-25 23:32:04 +05:30
7625b82dff Release 1.12.0-0.33b0 (#1223)
* Release 1.12.0-0.33b0

* Update API and SDK versions to 1.12
2022-08-09 21:32:17 +02:00
14077a95c5 Adding sqlalchemy native tags in sqlalchemy commenter (#1206) 2022-08-04 18:43:12 +05:30
7c75b3867b SQLCommenter semicolon bug fix (#1200) 2022-07-22 07:52:40 +05:30
2ce69a668f Add span for connection phase (#1134) 2022-07-17 21:09:15 +05:30
ee4083982f Release 1.12.0rc2-0.32b0 (#1174) 2022-07-04 15:14:50 +02:00
f03bef2579 Add support to instrument multiple sqlalchemy engines (#1132)
* Override __new__ to instrument multiple engines

* add possibility to instrument mutiple engines

* update changelog

* update return type in doc

* fix CHANGELOG

* format

* fix test

* Check if engines isinstance Sequence

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2022-06-16 13:44:55 +02:00
10659f8970 Release 1.12.0rc1-0.31b0 (#1094) 2022-05-17 13:18:55 -06:00
80969a06da use sqlalchemy module name not engine. fixes #922 (#1086) 2022-05-11 15:08:19 +05:30
b6964ccf3a Release 1.11.1-0.30b1 (#1067) 2022-04-22 02:29:17 +05:30
3ca7e7a5a3 Release 1.11.0-0.30b0 (#1056) 2022-04-18 10:04:18 -07:00
7a0caed36f updating changelogs and version to 1.10.0-0.29b0 (#995) (#996) 2022-03-10 17:49:49 -06:00
dbb35a2946 Sqlcommenter integration into SQLAlchemy (#924)
* Integrating sqlcommenter into psycopg2

* Integrating sqlcommenter into psycopg2 - Converted public local variable into private

* Added test cases for sqlcommenter & PR Changes

* Code refactoring for generate sqlcommenter

* Added testcase for sqlcommenter integration into sqlalchemy

* updated change log

* updated to accept latest logs

* Updated lint changes

* Fixed errors due to linting

* Fixed linting errors

* Fixed linting errors

* Fixed linting errors

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2022-03-08 23:57:00 -06:00
7bb29bd9ab Fix typos (#929) 2022-03-02 14:03:34 -08:00
c8020cbea5 updating changelogs and version to 1.9.1-0.28b1 (#887)
* updating changelogs and version to 1.9.1-0.28b1

* Update CHANGELOG.md

Co-authored-by: Nathaniel Ruiz Nowell <enruizno@uwaterloo.ca>

* Update CHANGELOG.md

Co-authored-by: Nathaniel Ruiz Nowell <enruizno@uwaterloo.ca>

Co-authored-by: Nathaniel Ruiz Nowell <enruizno@uwaterloo.ca>
2022-01-31 09:40:29 +00:00
f9b4d2b864 updating changelogs and version to 1.9.0-0.28b0 (#875) 2022-01-26 12:00:44 -06:00
0786aa49ad updating changelogs and version to 1.8.0-0.27b0 (#835) 2021-12-17 22:34:57 +05:30
a9507b3d1d updating changelogs and version to 1.7.1-0.26b1 (#809) 2021-11-12 01:30:47 +05:30
e621d637e9 updating changelogs and version to 1.7.0-0.26b0 (#805) 2021-11-11 18:55:06 +00:00
10d8e26a78 Fix sqlalchemy for postgres Unix sockets (#761)
* Fix sqlalchemy for postgres unix sockets

The following bit of replaced code contained a type inconsistency:

```py
attrs[SpanAttributes.NET_PEER_PORT] = int(data.get("port"))
```

`data.get` returns `Optional[str]` but `int(None)` throws a `TypeError`.

When using postgresql via unix socket `dsn` looks something like this:

```py
'user=postgres host=/tmp/socket dbname=postgres'
```

The `parse_dsn` function returns this:

```py
{'user': 'postgres', 'dbname': 'postgres', 'host': '/tmp/socket'}
```

* Update CHANGELOG

* Conditionally set net.transport for psql tcp/unix

* Use .value properties of enums

* Improve postgresql attribute detection from cursor

* Fix formatting

Co-authored-by: Matt Oberle <mattoberle@users.noreply.github.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
2021-11-11 12:35:55 +00:00
3137c1fa41 Upgrade black (#802) 2021-11-10 20:57:01 +00:00
335a14c682 adding CI testing for python 3.10 (#742) 2021-10-26 21:43:23 +00:00
d158a5f3b8 Prepare release v1.6.2 and 0.25b2 (#762) 2021-10-20 00:00:28 +05:30
f3dde6b628 updating changelogs and version to 1.6.1-0.25b1 (#751) 2021-10-18 13:04:04 -07:00
3ebfdb1a54 adding missing python 3.9 classifier (#741) 2021-10-14 21:52:44 +00:00
9f6c97af9f Release/1.6.0 0.25b0 (#732) 2021-10-13 14:54:52 -07:00
e8af7a3339 Respect provided tracer provider when instrumenting SQLAlchemy (#728)
* respect provided tracer provider when instrumenting sqlalchemy

This change updates the SQLALchemyInstrumentor to respect the tracer
provider that is passed in through the kwargs when patching the
`create_engine` functionality provided by SQLAlchemy. Previously, it
would default to the global tracer provider.

* feedback: pass in tracer_provider directly rather than kwargs

* feedback: update changelog

* build: lint
2021-10-12 17:49:22 +00:00