-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
fix(n1-api-calls): Omit span URL subdomain from fingerprinting #43706
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(n1-api-calls): Omit span URL subdomain from fingerprinting #43706
Conversation
When fingerprinting spans, ignore the subdomain. It's not useful for fingerprinting, and causes incorrect fingerprint changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A test case would probably be good to add here.
Yeah I should write some fingerprinting tests, I just haven't figured out a good way to do it yet. For N+1 API we need 10 or more spans, and they're hard to construct 🤔 I have a Jira task to increase coverage, though, so I'll do that soon! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gggritso I think the fingerprinting probably needs the most coverage since it has some permutations, doesn't create_span
from event_generators
do the trick for making more spans? (using the SpanBuilder?)
Hmm, not sure how to solve the spans being hard to construct, i've just been using |
Added test coverage in #43732 for the sake of accuracy |
@DominikB2014 @k-fish merged my test coverage PR, so now this PR includes a test 👍🏻 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
Closes PERF-1937. Sometimes we get spans with URLs like `"http://<client>.service.io/resource"` in them. The `<client>` is a hard-to-parameterize string of some kind. This causes a fingerprint explosion if different transactions are getting data from different clients. Omit the subdomain from fingerprinting (but leave detection alone). For fingerprinting, we actually _want_ to ignore this, and only fingerprint on the path. There's basically no scenario where an application would use the same path structure from different domains and it's _not_ an error.
Closes PERF-1937. Sometimes we get spans with URLs like
"http://<client>.service.io/resource"
in them. The<client>
is a hard-to-parameterize string of some kind. This causes a fingerprint explosion if different transactions are getting data from different clients.Omit the subdomain from fingerprinting (but leave detection alone). For fingerprinting, we actually want to ignore this, and only fingerprint on the path. There's basically no scenario where an application would use the same path structure from different domains and it's not an error.