Add support for db cursors and connections in context managers (#1028)
Here is an example snippet that will not report tracing without this patch:
with psycopg2.connect(...) as conn, conn.cursor() as cursor:
cursor.execute("select 1;")
Co-authored-by: Carl Bordum Hansen <carl@bordum.dk>
This commit is contained in:
parent
1107b97209
commit
33954ca03b
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
- bugfix: cursors and connections now produce spans when used with context managers
|
||||||
|
([#1028](https://github.com/open-telemetry/opentelemetry-python/pull/1028))
|
||||||
|
|
||||||
## Version 0.12b0
|
## Version 0.12b0
|
||||||
|
|
||||||
Released 2020-08-14
|
Released 2020-08-14
|
||||||
|
|
@ -19,4 +22,4 @@ Released 2020-05-12
|
||||||
|
|
||||||
Released 2020-02-21
|
Released 2020-02-21
|
||||||
|
|
||||||
- Initial release
|
- Initial release
|
||||||
|
|
|
||||||
|
|
@ -294,6 +294,13 @@ def get_traced_connection_proxy(
|
||||||
self.__wrapped__.cursor(*args, **kwargs), db_api_integration
|
self.__wrapped__.cursor(*args, **kwargs), db_api_integration
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
self.__wrapped__.__enter__()
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, *args, **kwargs):
|
||||||
|
self.__wrapped__.__exit__(*args, **kwargs)
|
||||||
|
|
||||||
return TracedConnectionProxy(connection, *args, **kwargs)
|
return TracedConnectionProxy(connection, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -366,4 +373,11 @@ def get_traced_cursor_proxy(cursor, db_api_integration, *args, **kwargs):
|
||||||
self.__wrapped__.callproc, *args, **kwargs
|
self.__wrapped__.callproc, *args, **kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
self.__wrapped__.__enter__()
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, *args, **kwargs):
|
||||||
|
self.__wrapped__.__exit__(*args, **kwargs)
|
||||||
|
|
||||||
return TracedCursorProxy(cursor, *args, **kwargs)
|
return TracedCursorProxy(cursor, *args, **kwargs)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue