DB-API instrumentor populates span after sqlcomment creation, not before #2935
+89
−43
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Re-orders database query span population by DB-API instrumentor so that
db.statement
span attribute includes any sqlcomments generated.Fixes #2936
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Added unit test. Locally installed this version of opentelemetry-instrumentation-dbapi, upstream dependencies, and downstream instrumentors for psycopg2, psycopg that use all of the above. Instrumented two Flask app that query PostgreSQL with general logs enabled to check sqlcomments: one via psycopg2, one with psycopg2. sqlcommenter enabled as per docs (here and here). Spans were exported to a locally-running otel-collector to inspect attributes including
db.statement
.After changes, example span from psycopg2 query with updated
db.statement
:which matches sqlcomment in corresponding postgresql general log:
Before changes,
db.statement
does not include sqlcomment (trimmed for clarity):Does This PR Require a Core Repo Change?
Checklist:
See contributing.md for styleguide, changelog guidelines, and more.