Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(5432): add query parameters in tracing url #6178

Merged
merged 3 commits into from
Oct 30, 2021

Conversation

hi-ogawa
Copy link
Contributor

@hi-ogawa hi-ogawa commented Oct 30, 2021

What do these changes do?

Fixes #5432

As demonstrated in the issue, when query parameters are passed via params keyword argument, some of tracing callback doesn't provide URL with those parameters. Note that it's been working correctly if query parameters are passed in an "inline" fashion as in session.get("/?x=0") instead of session.get("/", params=dict(x=0)).

Currently, as far as I can tell, out of 7 tracing callbacks which give URL information:

on_request_start
on_request_redirect
on_request_end
on_request_exception
on_request_chunk_sent
on_response_chunk_received
on_request_headers_sent

these 4 tracing types don't include query parameters when passed via params.

on_request_start
on_request_redirect
on_request_end
on_request_exception

In this PR, I addressed this issue and added tests to demonstrate all 7 cases working as expected.
If there's something I'm missing, please let me know.
Thanks for the review!

Are there changes in behavior for the user?

Yes, as explained above.

Related issue number

Checklist

  • I think the code is well written
  • Unit tests for the changes exist
  • (NA) Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the CHANGES folder
    • name it <issue_id>.<type> for example (588.bugfix)
    • if you don't have an issue_id change it to the pr id after creating the pr
    • ensure type is one of the following:
      • .feature: Signifying a new feature.
      • .bugfix: Signifying a bug fix.
      • .doc: Signifying a documentation improvement.
      • .removal: Signifying a deprecation or removal of public API.
      • .misc: A ticket has been closed, but it is not of interest to users.
    • Make sure to use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files."

@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Oct 30, 2021
@hi-ogawa
Copy link
Contributor Author

hi-ogawa commented Oct 30, 2021

Testing on python 3.7 is failing because I'm relying on some mock.Mock feature available only from python 3.8.
I'll work on a fix.

EDIT: Addressed in 73b7e62

@codecov
Copy link

codecov bot commented Oct 30, 2021

Codecov Report

Merging #6178 (73b7e62) into master (9f6c9cd) will increase coverage by 0.01%.
The diff coverage is 95.77%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6178      +/-   ##
==========================================
+ Coverage   93.29%   93.31%   +0.01%     
==========================================
  Files         102      102              
  Lines       30230    30305      +75     
  Branches     2711     2723      +12     
==========================================
+ Hits        28204    28279      +75     
  Misses       1849     1849              
  Partials      177      177              
Flag Coverage Δ
unit 93.24% <94.36%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
aiohttp/client.py 24.88% <0.00%> (ø)
tests/test_client_session.py 99.56% <100.00%> (+0.07%) ⬆️
tests/test_http_parser.py 99.05% <0.00%> (+0.01%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9f6c9cd...73b7e62. Read the comment docs.

Copy link
Member

@asvetlov asvetlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@asvetlov asvetlov merged commit 3e879ec into aio-libs:master Oct 30, 2021
@patchback
Copy link
Contributor

patchback bot commented Oct 30, 2021

Backport to 3.8: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 3e879ec on top of patchback/backports/3.8/3e879ec97923e9d29a4a277f942893ae7ed5f090/pr-6178

Backporting merged PR #6178 into master

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https:/aio-libs/aiohttp.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/3.8/3e879ec97923e9d29a4a277f942893ae7ed5f090/pr-6178 upstream/3.8
  4. Now, cherry-pick PR fix(5432): add query parameters in tracing url #6178 contents into that branch:
    $ git cherry-pick -x 3e879ec97923e9d29a4a277f942893ae7ed5f090
    If it'll yell at you with something like fatal: Commit 3e879ec97923e9d29a4a277f942893ae7ed5f090 is a merge but no -m option was given., add -m 1 as follows intead:
    $ git cherry-pick -m1 -x 3e879ec97923e9d29a4a277f942893ae7ed5f090
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR fix(5432): add query parameters in tracing url #6178 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/3.8/3e879ec97923e9d29a4a277f942893ae7ed5f090/pr-6178
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https:/sanitizers/patchback-github-app.

@aio-libs-github-bot
Copy link
Contributor

💔 Backport was not successful

The PR was attempted backported to the following branches:

  • ❌ 3.8: Commit could not be cherrypicked due to conflicts

asvetlov pushed a commit that referenced this pull request Oct 30, 2021
* fix(5432): add query parameters in tracing url

* docs: add CHANGES/5432.bugfix

* test: support python 3.7 in `test_request_tracing_url_params`
@asvetlov
Copy link
Member

backported by 96f8206

@hi-ogawa hi-ogawa deleted the 5432-tracing-request-url-params branch November 1, 2021 00:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot:chronographer:provided There is a change note present in this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

URL querystring missing in tracer
2 participants