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.trace import tracer_provider
from opentelemetry.ext.dbapi import trace_integration
trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)
# Ex: mysql.connector
trace_integration(tracer_provider(), mysql.connector, "connect", "mysql", "sql")
# Ex: pyodbc
trace_integration(tracer_provider(), pyodbc, "Connection", "odbc", "sql")
API¶
-
opentelemetry.ext.dbapi.
trace_integration
(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