feature: hydrate AsyncPG span attributes at creation (#3643) #3841
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
This change enables filtering of AsyncPG spans by moving attribute hydration from inside the span context to before span creation. Previously, spans were created with no attributes and attributes were added after span creation using
span.set_attribute()
, which prevented samplers from filtering based on request attributes.The fix moves the
_hydrate_span_from_args()
call outside the span context and passes the hydrated attributes directly tostart_as_current_span()
using theattributes
parameter. This ensures that database attributes (system, name, user, statement, network info) are available during span creation for sampling decisions.Fixes #3643
Type of change
How Has This Been Tested?
The changes were tested by:
attributes
parameter is properly passed tostart_as_current_span()
in both_do_execute
and_do_cursor_execute
methodsThe implementation maintains backward compatibility and does not change the external API.
Does This PR Require a Core Repo Change?
Checklist:
See contributing.md for styleguide, changelog guidelines, and more.