OpenTelemetry Database API Integration¶
The trace integration with Database API supports libraries following the Python Database API Specification v2.0.
Usage¶
import mysql.connector
import pyodbc
from opentelemetry import trace
from opentelemetry.ext.dbapi import trace_integration
from opentelemetry.trace import TracerProvider
trace.set_tracer_provider(TracerProvider())
# Ex: mysql.connector
trace_integration(mysql.connector, "connect", "mysql", "sql")
# Ex: pyodbc
trace_integration(pyodbc, "Connection", "odbc", "sql")
API¶
-
opentelemetry.ext.dbapi.
trace_integration
(connect_module, connect_method_name, database_component, database_type='', connection_attributes=None, tracer_provider=None)[source]¶ Integrate with DB API library. https://www.python.org/dev/peps/pep-0249/
- Parameters
connect_module (
Callable
[…,any
]) – Module name where connect method is available.connect_method_name (
str
) – The connect method name.database_component (
str
) – Database driver name or database name “JDBI”, “jdbc”, “odbc”, “postgreSQL”.database_type (
str
) – The Database type. For any SQL database, “sql”.connection_attributes (
Optional
[Dict
]) – Attribute names for database, port, host and user in Connection object.tracer_provider (
Optional
[TracerProvider
]) – TheTracerProvider
to use. If ommited the current configured one is used.
-
opentelemetry.ext.dbapi.
wrap_connect
(tracer, connect_module, connect_method_name, database_component, database_type='', connection_attributes=None)[source]¶ Integrate with DB API library. https://www.python.org/dev/peps/pep-0249/
- Parameters
tracer (
Tracer
) – TheTracer
to use.connect_module (
Callable
[…,any
]) – Module name where connect method is available.connect_method_name (
str
) – The connect method name.database_component (
str
) – Database driver name or database name “JDBI”, “jdbc”, “odbc”, “postgreSQL”.database_type (
str
) – The Database type. For any SQL database, “sql”.connection_attributes (
Optional
[Dict
]) – Attribute names for database, port, host and user in Connection object.
-
class
opentelemetry.ext.dbapi.
DatabaseApiIntegration
(tracer, database_component, database_type='sql', connection_attributes=None)[source]¶ Bases:
object
-
class
opentelemetry.ext.dbapi.
TracedConnectionProxy
(connection, db_api_integration, *args, **kwargs)[source]¶ Bases:
ObjectProxy