OpenTelemetry aiopg Instrumentation

The integration with PostgreSQL supports the aiopg library, it can be enabled by using AiopgInstrumentor.

Usage

import aiopg
from opentelemetry.instrumentation.aiopg import AiopgInstrumentor

AiopgInstrumentor().instrument()

cnx = await aiopg.connect(database='Database')
cursor = await cnx.cursor()
await cursor.execute("INSERT INTO test (testField) VALUES (123)")
cursor.close()
cnx.close()

pool = await aiopg.create_pool(database='Database')
cnx = await pool.acquire()
cursor = await cnx.cursor()
await cursor.execute("INSERT INTO test (testField) VALUES (123)")
cursor.close()
cnx.close()

API

class opentelemetry.instrumentation.aiopg.AiopgInstrumentor(*args, **kwargs)[source]

Bases: opentelemetry.instrumentation.instrumentor.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:

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.

Return type

Collection[str]

instrument_connection(connection, tracer_provider=None)[source]

Enable instrumentation in a aiopg 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.

uninstrument_connection(connection)[source]

Disable instrumentation in a aiopg connection.

Parameters

connection – The connection to uninstrument.

Returns

An uninstrumented connection.