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) – TheTracerto 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