Kludex · GitHub

Describe your environment

OS: (e.g, Ubuntu)
Python version: (e.g., Python 3.8.10)
Package version: (e.g., 0.46.0)

What happened?

The default sqlite3.Cursor is not instrumented.

Steps to Reproduce

import sqlite3
from opentelemetry.instrumentation.sqlite3 import SQLite3Instrumentor
import logfire
logfire.configure()
SQLite3Instrumentor().instrument()
cnx = sqlite3.connect(':memory:')
cnx.execute('CREATE TABLE test (testField INTEGER)')
cnx.close()

Expected Result

I would expect a span to be created for the table creation.

Actual Result

The span was not created.

Instead, if you do...

import sqlite3
from opentelemetry.instrumentation.sqlite3 import SQLite3Instrumentor
import logfire
logfire.configure()
SQLite3Instrumentor().instrument()
cnx = sqlite3.connect(':memory:')
cursor = cnx.cursor()
cursor.execute('CREATE TABLE test (testField INTEGER)')
cursor.close()
cnx.close()

Additional context

The documentation should be updated... The code there doesn't run as is...

https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/sqlite3/sqlite3.html

It should create the table first!

Would you like to implement a fix?

None

PRs

Read the original on github.com ↗