feat(stdlib): Support data_collection filtering for URL query params - #7291
Merged
Conversation
ericapisani
marked this pull request as ready for review
August 28, 2026 18:08
Contributor
Codecov Results 📊✅ 121810 passed | ⏭️ 6762 skipped | Total: 128572 | Pass Rate: 94.74% | Execution Time: 432m 39s 📊 Comparison with Base Branch
All tests are passing successfully. ✅ Patch coverage is 100.00%. Project has 2489 uncovered lines. Files with missing lines (1)
Coverage diff@@ Coverage Diff @@
## main #PR +/-##
==========================================
- Coverage 90.30% 90.28% -0.02%
==========================================
Files 193 193 —
Lines 25612 25612 —
Branches 9450 9434 -16
==========================================
+ Hits 23129 23123 -6
- Misses 2483 2489 +6
- Partials 1434 1436 +2Generated by Codecov Action |
sentrivana
approved these changes
Aug 31, 2026
Previously the stdlib httplib integration only gated url.full, url.query and url.fragment on send_default_pii, so with data_collection configured the URL data was dropped entirely and no allow/denylist filtering was ever applied. The data_collection experiment's url_query_params behaviour is now applied to span streaming spans and breadcrumbs, matching httpx and pyreqwest. url.full is now reassembled with the filtered query and fragment, and empty url.query/url.fragment attributes are no longer emitted. The legacy (non span-streaming) path is left unchanged. Fixes PY-2744 Fixes #7279
The stdlib integration no longer emits empty url.query and url.fragment attributes, so the requests breadcrumb tests were asserting on data that is intentionally absent.
boto3, httpx, httpx2, pyreqwest, and stdlib each defined an identical `_get_url_attributes` function for building `url.*` span attributes with data_collection/PII filtering. Consolidate into a single `get_url_attributes` in tracing_utils.py and have each integration call it. Refs PY-2744 Refs #7279
ericapisani
force-pushed
the
py-2744-stdlib-datacollection
branch
from
August 31, 2026 14:49
0312f9c to
8cc46e2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously the stdlib httplib integration only gated url.full, url.query and
url.fragment on send_default_pii, so with data_collection configured the URL
data was dropped entirely and no allow/denylist filtering was ever applied.
The data_collection experiment's url_query_params behaviour is now applied to
span streaming spans and breadcrumbs, matching httpx and pyreqwest.
url.full is now reassembled with the filtered query and fragment, and empty
url.query/url.fragment attributes are no longer emitted. The legacy
(non span-streaming) path is left unchanged.
Fixes PY-2744
Fixes #7279