-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
meta: Update CHANGELOG for 8.18.0 #12932
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
Merged
Merged
Changes from all commits
Commits
Show all changes
40 commits
Select commit
Hold shift + click to select a range
94ad1a3
Merge pull request #12848 from getsentry/master
github-actions[bot] 196fc09
fix(otel): Do not add `otel.kind: INTERNAL` attribute (#12841)
mydea 2f04224
feat(tracing): add long animation frame tracing (#12646)
KevinL10 3ad3bdd
ref(typescript): Remove dom types from main tsconfig (#12836)
AbhiPrasad 6ba59c5
docs(nuxt): Add additional information in readme (#12850)
s1gr1d 3549777
docs(nuxt): Fix instrument filename in readme (#12853)
s1gr1d efcd9f3
chore: Remove unused codecov package (#12854)
AbhiPrasad 00fabe5
docs(nextjs): Clarify which API wrappers are intended for which route…
lforst 0e6d802
test(e2e): Add nestjs e2e test documenting errors not being properly …
nicohrubec 1be3b4a
fix(nextjs): Support automatic instrumentation for app directory with…
ziyadkhalil 9bb9c99
ci: Test external contributor workflow (#12876)
nicohrubec 4852dc7
test(solidstart): Add solidstart e2e test app (#12873)
andreiborza ab4ac07
fix(inp): Ensure INP spans have correct transaction (#12871)
mydea 38ec761
ci: Run external-collaborator workflow on pull_request_target (#12877)
mydea 9d61b2c
ci(nextjs): Fix flakey types? (#12881)
lforst d304248
fix(nestjs): do not make SentryTraced() decorated functions async (#1…
GitSquared 17bf308
feat: feat(cloudflare): Add basic cloudflare package and tests (#12861)
AbhiPrasad deb12d5
fix: Cleanup hooks when they are not used anymore (#12852)
mydea 9c613be
ref: Add external contributor to CHANGELOG.md (#12882)
github-actions[bot] 963eab7
test(nextjs): Fix canary tests (#12875)
lforst 9f07f99
fix(angular): Guard `ErrorEvent` check in ErrorHandler to avoid throw…
Lms24 d67df35
feat(nextjs): Add `experimental_captureRequestError` for `onRequestEr…
lforst 6797044
test(solidstart): Add client performance e2e tests (#12895)
andreiborza f378772
feat(replay): Bump `rrweb` to 2.25.0 (#12478)
billyvg 9c92ece
ref(e2e-tests): Make `startCommand` optional in shared playwright con…
Lms24 673addc
docs: Add apollo integration to migration docs (#12889)
AbhiPrasad 289d069
chore: add python version requirement to contributing doc (#12901)
JonasBa eaf6055
docs(profiling-node): add detailed docs on how to build bindings (#12…
JonasBa 616915b
ref: Deprecate `enableTracing` (#12897)
lforst 15fdf09
ref(core): Small bundle size improvement (#12830)
lforst b538f89
docs(node): Update Node `README.md` (#12916)
timfish 05b2754
ci: Fix canary test implosion (#12915)
lforst 1d3e208
feat: Expose `exclude` and `include` options for ESM loader (#12910)
timfish 383743a
fix(solidstart): Set proper sentry origin for solid router integratio…
andreiborza f9ab138
ci: Do not run external contributor job for bots (#12886)
mydea 9d1b35d
feat(browser): Add user agent to INP standalone span attributes (#12896)
Lms24 475d66f
fix(sveltekit): Add Vite peer dep for proper type resolution (#12926)
mcous 707afd6
fix(tracing): Ensure you can pass `null` as `parentSpan` in `startSpa…
mydea 6f4c045
fix(node): Ensure correct URL is passed to `ignoreIncomingRequests` c…
Lms24 c57e363
meta: Update CHANGELOG for 8.18.0
Lms24 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
12 changes: 12 additions & 0 deletions
12
...s/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/assets/script.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
(() => { | ||
const startTime = Date.now(); | ||
|
||
function getElasped() { | ||
const time = Date.now(); | ||
return time - startTime; | ||
} | ||
|
||
while (getElasped() < 101) { | ||
// | ||
} | ||
})(); |
11 changes: 11 additions & 0 deletions
11
...tion-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/init.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
|
||
window.Sentry = Sentry; | ||
|
||
Sentry.init({ | ||
dsn: 'https://[email protected]/1337', | ||
integrations: [ | ||
Sentry.browserTracingIntegration({ enableLongTask: false, enableLongAnimationFrame: false, idleTimeout: 9000 }), | ||
], | ||
tracesSampleRate: 1, | ||
}); |
10 changes: 10 additions & 0 deletions
10
...ests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/template.html
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
</head> | ||
<body> | ||
<div>Rendered Before Long Animation Frame</div> | ||
<script src="https://example.com/path/to/script.js"></script> | ||
</body> | ||
</html> |
27 changes: 27 additions & 0 deletions
27
...tion-tests/suites/tracing/browserTracingIntegration/long-animation-frame-disabled/test.ts
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
import type { Route } from '@playwright/test'; | ||
import { expect } from '@playwright/test'; | ||
import type { Event } from '@sentry/types'; | ||
|
||
import { sentryTest } from '../../../../utils/fixtures'; | ||
import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; | ||
|
||
sentryTest( | ||
'should not capture long animation frame when flag is disabled.', | ||
async ({ browserName, getLocalTestPath, page }) => { | ||
// Long animation frames only work on chrome | ||
if (shouldSkipTracingTest() || browserName !== 'chromium') { | ||
sentryTest.skip(); | ||
} | ||
|
||
await page.route('**/path/to/script.js', (route: Route) => | ||
route.fulfill({ path: `${__dirname}/assets/script.js` }), | ||
); | ||
|
||
const url = await getLocalTestPath({ testDir: __dirname }); | ||
|
||
const eventData = await getFirstSentryEnvelopeRequest<Event>(page, url); | ||
const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui')); | ||
|
||
expect(uiSpans?.length).toBe(0); | ||
}, | ||
); |
25 changes: 25 additions & 0 deletions
25
...ts/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/assets/script.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
function getElapsed(startTime) { | ||
const time = Date.now(); | ||
return time - startTime; | ||
} | ||
|
||
function handleClick() { | ||
const startTime = Date.now(); | ||
while (getElapsed(startTime) < 105) { | ||
// | ||
} | ||
} | ||
|
||
function start() { | ||
const startTime = Date.now(); | ||
while (getElapsed(startTime) < 105) { | ||
// | ||
} | ||
} | ||
|
||
// trigger 2 long-animation-frame events | ||
// one from the top-level and the other from an event-listener | ||
start(); | ||
|
||
const button = document.getElementById('clickme'); | ||
button.addEventListener('click', handleClick); |
15 changes: 15 additions & 0 deletions
15
...ation-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/init.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
|
||
window.Sentry = Sentry; | ||
|
||
Sentry.init({ | ||
dsn: 'https://[email protected]/1337', | ||
integrations: [ | ||
Sentry.browserTracingIntegration({ | ||
idleTimeout: 9000, | ||
enableLongTask: false, | ||
enableLongAnimationFrame: true, | ||
}), | ||
], | ||
tracesSampleRate: 1, | ||
}); |
13 changes: 13 additions & 0 deletions
13
...tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/template.html
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
</head> | ||
<body> | ||
<div>Rendered Before Long Animation Frame</div> | ||
<button id="clickme"> | ||
click me to start the long animation! | ||
</button> | ||
<script src="https://example.com/path/to/script.js"></script> | ||
</body> | ||
</html> |
112 changes: 112 additions & 0 deletions
112
...ation-tests/suites/tracing/browserTracingIntegration/long-animation-frame-enabled/test.ts
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
import type { Route } from '@playwright/test'; | ||
import { expect } from '@playwright/test'; | ||
import type { Event } from '@sentry/types'; | ||
|
||
import { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/browser'; | ||
import { sentryTest } from '../../../../utils/fixtures'; | ||
import { getFirstSentryEnvelopeRequest, shouldSkipTracingTest } from '../../../../utils/helpers'; | ||
|
||
sentryTest( | ||
'should capture long animation frame for top-level script.', | ||
async ({ browserName, getLocalTestPath, page }) => { | ||
// Long animation frames only work on chrome | ||
if (shouldSkipTracingTest() || browserName !== 'chromium') { | ||
sentryTest.skip(); | ||
} | ||
|
||
await page.route('**/path/to/script.js', (route: Route) => | ||
route.fulfill({ path: `${__dirname}/assets/script.js` }), | ||
); | ||
|
||
const url = await getLocalTestPath({ testDir: __dirname }); | ||
|
||
const promise = getFirstSentryEnvelopeRequest<Event>(page); | ||
|
||
await page.goto(url); | ||
|
||
await new Promise(resolve => setTimeout(resolve, 1000)); | ||
|
||
const eventData = await promise; | ||
|
||
const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); | ||
|
||
expect(uiSpans?.length).toEqual(1); | ||
|
||
const [topLevelUISpan] = uiSpans || []; | ||
expect(topLevelUISpan).toEqual( | ||
expect.objectContaining({ | ||
op: 'ui.long-animation-frame', | ||
description: 'Main UI thread blocked', | ||
parent_span_id: eventData.contexts?.trace?.span_id, | ||
data: { | ||
'code.filepath': 'https://example.com/path/to/script.js', | ||
'browser.script.source_char_position': 0, | ||
'browser.script.invoker': 'https://example.com/path/to/script.js', | ||
'browser.script.invoker_type': 'classic-script', | ||
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', | ||
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', | ||
}, | ||
}), | ||
); | ||
const start = topLevelUISpan.start_timestamp ?? 0; | ||
const end = topLevelUISpan.timestamp ?? 0; | ||
const duration = end - start; | ||
|
||
expect(duration).toBeGreaterThanOrEqual(0.1); | ||
expect(duration).toBeLessThanOrEqual(0.15); | ||
}, | ||
); | ||
|
||
sentryTest( | ||
'should capture long animation frame for event listener.', | ||
async ({ browserName, getLocalTestPath, page }) => { | ||
// Long animation frames only work on chrome | ||
if (shouldSkipTracingTest() || browserName !== 'chromium') { | ||
sentryTest.skip(); | ||
} | ||
|
||
await page.route('**/path/to/script.js', (route: Route) => | ||
route.fulfill({ path: `${__dirname}/assets/script.js` }), | ||
); | ||
|
||
const url = await getLocalTestPath({ testDir: __dirname }); | ||
|
||
const promise = getFirstSentryEnvelopeRequest<Event>(page); | ||
|
||
await page.goto(url); | ||
|
||
// trigger long animation frame function | ||
await page.getByRole('button').click(); | ||
|
||
await new Promise(resolve => setTimeout(resolve, 1000)); | ||
|
||
const eventData = await promise; | ||
|
||
const uiSpans = eventData.spans?.filter(({ op }) => op?.startsWith('ui.long-animation-frame')); | ||
|
||
expect(uiSpans?.length).toEqual(2); | ||
|
||
// ignore the first ui span (top-level long animation frame) | ||
const [, eventListenerUISpan] = uiSpans || []; | ||
|
||
expect(eventListenerUISpan).toEqual( | ||
expect.objectContaining({ | ||
op: 'ui.long-animation-frame', | ||
description: 'Main UI thread blocked', | ||
parent_span_id: eventData.contexts?.trace?.span_id, | ||
data: { | ||
'browser.script.invoker': 'BUTTON#clickme.onclick', | ||
'browser.script.invoker_type': 'event-listener', | ||
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.long-animation-frame', | ||
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', | ||
}, | ||
}), | ||
); | ||
const start = eventListenerUISpan.start_timestamp ?? 0; | ||
const end = eventListenerUISpan.timestamp ?? 0; | ||
const duration = end - start; | ||
|
||
expect(duration).toBeGreaterThanOrEqual(0.1); | ||
expect(duration).toBeLessThanOrEqual(0.15); | ||
}, | ||
); |
12 changes: 12 additions & 0 deletions
12
...ites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/assets/script.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
(() => { | ||
const startTime = Date.now(); | ||
|
||
function getElasped() { | ||
const time = Date.now(); | ||
return time - startTime; | ||
} | ||
|
||
while (getElasped() < 101) { | ||
// | ||
} | ||
})(); |
11 changes: 11 additions & 0 deletions
11
...-tests/suites/tracing/browserTracingIntegration/long-animation-frame-non-chromium/init.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
|
||
window.Sentry = Sentry; | ||
|
||
Sentry.init({ | ||
dsn: 'https://[email protected]/1337', | ||
integrations: [ | ||
Sentry.browserTracingIntegration({ enableLongTask: true, enableLongAnimationFrame: true, idleTimeout: 9000 }), | ||
], | ||
tracesSampleRate: 1, | ||
}); |
Oops, something went wrong.
Oops, something went wrong.
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.
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.
Hi @Lms24 and @mydea,
I worked on one of the release PRs (#12858) but was not credited. Is this a bug?
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.
Hey @ziyadkhalil, sorry we missed this and thanks for letting us know. I've opened up a PR to add you in. Apologies again!
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.
Thank you! 🙏🏻