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(tracing): Get HTTP headers from span rather than transaction if possible #1035

Merged
merged 4 commits into from
Feb 27, 2021

Conversation

lobsterkatie
Copy link
Member

Currently, there are situations in which a trace ends up looking not like this (as it should):

image

but instead looks like this:

image

This happens because we currently create the outgoing tracing headers based not on the span representing the outgoing request but on whatever span is on the scope, which is most often the transaction itself. There are situations in which this is necessary (if there is no child span to tie to*), but in situations where it's not, we should be correctly associating child transactions with their parent spans, not their ancestor transactions.

*It's a separate question whether, in the one place there isn't a span (here, the rq integration), there should be.

Copy link
Member

@untitaker untitaker left a comment

Choose a reason for hiding this comment

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

Please add a docstring to iter_trace_propagation_headers explaining in which situations one would pass in a span object explicitly.

@lobsterkatie lobsterkatie merged commit 51987c5 into master Feb 27, 2021
@lobsterkatie lobsterkatie deleted the kmclb-use-correct-parent-span-for-http-headers branch February 27, 2021 02:17
alexmv added a commit to CAVaccineInventory/vial that referenced this pull request Mar 5, 2021
Interestingly, sentry has just hit 1.0.0!  None of the nominally
breaking changes[1] look relevant to our minimal usage:

> - Feat: Moved auto_session_tracking experimental flag to a proper
> option and removed session_mode, hence enabling release health by
> default getsentry/sentry-python#994
>
> - Fixed Django transaction name by setting the name to
> request.path_info rather than request.path
>
> - Fix for tracing by getting HTTP headers from span rather than
> transaction when possible getsentry/sentry-python#1035
>
> - Fix for Flask transactions missing request body in non errored
> transactions getsentry/sentry-python#1034
>
> - Fix for honoring the X-Forwarded-For header getsentry/sentry-python#1037
>
> - Fix for worker that logs data dropping of events with level error
> getsentry/sentry-python#1032

[1] https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants