OpenTelemetry mysqlclient Instrumentation

The integration with MySQLClient supports the MySQLClient library and can be enabled by using MySQLClientInstrumentor.

Usage

import MySQLdb
from opentelemetry.instrumentation.mysqlclient import MySQLClientInstrumentor


MySQLClientInstrumentor().instrument()

cnx = MySQLdb.connect(database="MySQL_Database")
cursor = cnx.cursor()
cursor.execute("INSERT INTO test (testField) VALUES (123)"
cnx.commit()
cursor.close()
cnx.close()

API

class opentelemetry.instrumentation.mysqlclient.MySQLClientInstrumentor(*args, **kwargs)[source]

Bases: BaseInstrumentor

instrumentation_dependencies()[source]

Return a list of python packages with versions that the will be instrumented.

The format should be the same as used in requirements.txt or pyproject.toml.

For example, if an instrumentation instruments requests 1.x, this method should look like: :rtype: Collection[str]

def instrumentation_dependencies(self) -> Collection[str]:

return [‘requests ~= 1.0’]

This will ensure that the instrumentation will only be used when the specified library is present in the environment.

static instrument_connection(connection, tracer_provider=None)[source]

Enable instrumentation in a mysqlclient connection.

Parameters:
  • connection – The connection to instrument.

  • tracer_provider – The optional tracer provider to use. If omitted the current globally configured one is used.

Returns:

An instrumented connection.

static uninstrument_connection(connection)[source]

Disable instrumentation in a mysqlclient connection.

Parameters:

connection – The connection to uninstrument.

Returns:

An uninstrumented connection.