OpenTelemetry Database API Instrumentation¶
The trace integration with Database API supports libraries that follow the Python Database API Specification v2.0. https://www.python.org/dev/peps/pep-0249/
Usage¶
import mysql.connector
import pyodbc
from opentelemetry.instrumentation.dbapi import trace_integration
# Ex: mysql.connector
trace_integration(mysql.connector, "connect", "mysql")
# Ex: pyodbc
trace_integration(pyodbc, "Connection", "odbc")
API¶
- opentelemetry.instrumentation.dbapi.trace_integration(connect_module, connect_method_name, database_system, connection_attributes=None, tracer_provider=None, capture_parameters=False, enable_commenter=False, db_api_integration_factory=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_system (
str
) – An identifier for the database management system (DBMS) product being used.connection_attributes (
Optional
[Dict
]) – Attribute names for database, port, host and user in Connection object.tracer_provider (
Optional
[TracerProvider
]) – Theopentelemetry.trace.TracerProvider
to use. If omitted the current configured one is used.capture_parameters (
bool
) – Configure if db.statement.parameters should be captured.enable_commenter (
bool
) – Flag to enable/disable sqlcommenter.db_api_integration_factory – The
DatabaseApiIntegration
to use. If none is passed the default one is used.
- opentelemetry.instrumentation.dbapi.wrap_connect(name, connect_module, connect_method_name, database_system, connection_attributes=None, version='', tracer_provider=None, capture_parameters=False, enable_commenter=False, db_api_integration_factory=None, commenter_options=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_system (
str
) – An identifier for the database management system (DBMS) product being used.connection_attributes (
Optional
[Dict
]) – Attribute names for database, port, host and user in Connection object.tracer_provider (
Optional
[TracerProvider
]) – Theopentelemetry.trace.TracerProvider
to use. If omitted the current configured one is used.capture_parameters (
bool
) – Configure if db.statement.parameters should be captured.enable_commenter (
bool
) – Flag to enable/disable sqlcommenter.db_api_integration_factory – The
DatabaseApiIntegration
to use. If none is passed the default one is used.commenter_options (
Optional
[dict
]) – Configurations for tags to be appended at the sql query.
- opentelemetry.instrumentation.dbapi.unwrap_connect(connect_module, connect_method_name)[source]¶
Disable integration with DB API library. https://www.python.org/dev/peps/pep-0249/
- opentelemetry.instrumentation.dbapi.instrument_connection(name, connection, database_system, connection_attributes=None, version='', tracer_provider=None, capture_parameters=False, enable_commenter=False, commenter_options=None)[source]¶
Enable instrumentation in a database connection.
- Parameters
connection – The connection to instrument.
database_system (
str
) – An identifier for the database management system (DBMS) product being used.connection_attributes (
Optional
[Dict
]) – Attribute names for database, port, host and user in a connection object.tracer_provider (
Optional
[TracerProvider
]) – Theopentelemetry.trace.TracerProvider
to use. If omitted the current configured one is used.capture_parameters (
bool
) – Configure if db.statement.parameters should be captured.enable_commenter (
bool
) – Flag to enable/disable sqlcommenter.commenter_options (
Optional
[dict
]) – Configurations for tags to be appended at the sql query.
- Returns
An instrumented connection.
- opentelemetry.instrumentation.dbapi.uninstrument_connection(connection)[source]¶
Disable instrumentation in a database connection.
- Parameters
connection – The connection to uninstrument.
- Returns
An uninstrumented connection.
- class opentelemetry.instrumentation.dbapi.DatabaseApiIntegration(name, database_system, connection_attributes=None, version='', tracer_provider=None, capture_parameters=False, enable_commenter=False, commenter_options=None, connect_module=None)[source]¶
Bases:
object
- opentelemetry.instrumentation.dbapi.get_traced_connection_proxy(connection, db_api_integration, *args, **kwargs)[source]¶