-
Notifications
You must be signed in to change notification settings - Fork 821
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(xhr): make performance observer work with relative urls #2226
Conversation
with relative urls and minor fixes
Codecov Report
@@ Coverage Diff @@
## main #2226 +/- ##
==========================================
+ Coverage 92.70% 92.74% +0.03%
==========================================
Files 145 145
Lines 5184 5182 -2
Branches 1060 1059 -1
==========================================
Hits 4806 4806
+ Misses 378 376 -2
|
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, one thing
packages/opentelemetry-instrumentation-xml-http-request/src/xhr.ts
Outdated
Show resolved
Hide resolved
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, thx for 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.
Good catch, thanks!
entries.forEach(entry => { | ||
if ( | ||
entry.initiatorType === 'xmlhttprequest' && | ||
entry.name === spanUrl | ||
entry.name === urlNormalizingAnchor.href |
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.
Note: This won't work with all IE versions (depending on how it's hosted) as it (IE) can rewrite the URL as http://xxxx:443/yyy (which is just annoying).
For Application Insights we added a helper function that we run everything through to avoid the issue to ensure that all URL's (page and dependency (XHR)) calls get reported as expected. https://github.com/microsoft/ApplicationInsights-JS/blob/master/shared/AppInsightsCommon/src/UrlHelperFuncs.ts#L86-L93
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.
And the URL passed into the above function is generated by the same href trick being used here, we just "cache" a couple to avoid recreating new elements everytime.
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.
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.
Sorry was on vacation. Anyways IE doesn't have PerformanceObserver support so this should not be an issue here as this code is never ran in IE. But this .href trick is used elsewhere also so maybe lets create a separate issue to figure it out?
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.
@vmarchaud officially i'm not sure we claim any specific browser support. Unofficially, I think we only really work in IE 11
@MSNev is this a blocker for this PR?
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.
I don't believe it's a blocker, and it can be fixed later (if people complain).
And it should be fixed more generally so that any checked / reported URLs don't get logged as http:///domain.xxx:443/ which is the main issue and only becomes a code bug when comparing different (unnormalized) Urls.
Which problem is this PR solving?
Some minor fixes