-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
meta(changelog): Update changelog for 8.31.0 #13734
Conversation
Sometimes we were sending faulty `default` ops for Next.js transactions. This seemed to happen when the HTTP integration couldn't get a handle of the incoming requests (yet to figure out why). This PR: - Backfills the op for faulty transactions - Sets the origin of spans generated by Next.js to `auto` (I couldn't come up with a more specific origin because the second part of it is an op and none are satisfactory) - Remove the `sentry.skip_span_data_inference` which is only used internally. This change is hard to test because it seems to happen flakily that the http integration isn't working. Fixes #13598
…ch` op (#13600) Ref (not complete fix) #13596 This gives Next.js prefetch requests a `http.server.prefetch` op, when a `Next-Router-Prefetch: 1` header is present. In some situations Next.js doesn't seem to attach the header for prefetch requests. Seems like it is only attached when the current route is a dynamic route.
[Gitflow] Merge master into develop
This fixes a potential issue where segments can come in out of order due to our flush "lock" was not being respected in two cases: 1) No current flush in progress, but flush throws an error (this should be rare as the common errors that get thrown should stop the replay completely) 2) Flush is in progress, which skips the code block that releases lock and then calls debouncedFlush. This leaves the lock always set to a resolved (or rejected) promise. This ultimately should not change too much as the flush calls are debounced anyway, but this cleans up the code a bit and also logs any exceptions that may occur. However this can fix issues where segments can come in out of order depending on how long the send request takes. e.g. ![image](https://github.com/user-attachments/assets/ea304892-1c72-4e96-acc6-c714d263980c) where ideally it looks like ![image](https://github.com/user-attachments/assets/8c3e706c-d3b2-43bd-a970-561b32b05458)
… minutes (#13069) Including more checkouts will improve replayer scrubbing since it will reduce the number of mutations that need to be processed (especially for longer replays). The downside is that it will increase the size of replays since we will have up to 9 more snapshots per replay (max replay duration is 60 minutes / 6 minute checkouts).
…rs (#13406) RN SDK uses the normalize function before passing data over the RN Bridge, which only accepts serializable data. Infinity causes -> getsentry/sentry-react-native#4024
…odule (#13643) Enabling this option will import the Sentry server config at the top of the server entry file. This can be used when adding the node option `--import` does not work. This however only comes with limited tracing functionality. Example Usage: ```js export default defineNuxtConfig({ sentry: { // ... other options simplifiedDeployment: true }, })
Another way to fix this issue would be to check via the debugger if the property exists already on the error object and bail early before we have local variables. However, this would add an extra round trip call via the debugger for every error. Since re-thrown errors are far less likely, I decided instead to just not overwrite existing local variables. This PR also adds a `Debugger.resume` call in the catch case to ensure that they debugger will always resume even if we get errors while debugging. It's worth noting that this only fixes the issue in Node v20+ where we use the async debugging interface.
Bump `sorcery` to version 1.0.0. the main changes made were to move the package to output ESM code. The SvelteKit build complained a bit about ESM initially but moving from a static to a dynamic import worked, so I'll take that.
…tests/test-applications/node-express (#13685)
https://docs.codecov.com/docs/test-result-ingestion-beta https://playwright.dev/docs/test-reporters Adds codecov test analytics to the repo, specifically for our playwright tests. This works by using the junit reporter with playwright, and then uploading that via the `codecov/test-results-action@v1` GitHub Action.
…tests/test-applications/node-express-incorrect-instrumentation (#13687)
Currently we are only setting the `platform` and `instruction_addr` for a wasm frame if we find a matching debug image. This is not always the case and unconditionally parsing the instruction address is almost always desirable.
…tests/test-applications/node-express-esm-without-loader (#13689)
…tests/test-applications/node-express-esm-preload (#13691)
…tests/test-applications/node-express-esm-loader (#13692)
…tests/test-applications/node-express-cjs-preload (#13694)
To avoid infinite loops etc.
… span (#13658) Add the navigation performance entry `activationStart` property as a span attribute to the pageload span. The attribute is called `performance.activationStart` and it is measured in ms relative to performance.timeOrigin.
Co-authored-by: IEatBeans <75859301+KyGuy2002@users.noreply.github.com>
I think what is happening is that by the time our close handler is called, the handler had already been deleted, which causes a use after free error. I also updated the code to check for is_closing which is what that underlying libuv method actually asserts on. Fixes #13661
Modifies the functionality of profiler start and stop calls to regenerate the profilerId
On mobile devices, the form looked narrow due to the unspecified value of the css variable --form-width. I set it to 100% for mobile devices and this stretched the form to the full width (see before/after screenshots). before: <img width="320" alt="before" src="https://github.com/user-attachments/assets/60cb8741-02e4-4845-804b-a121861b4ae5"> after: <img width="320" alt="after" src="https://github.com/user-attachments/assets/645d8ba3-d694-432c-9c1d-2f3d939b6ccd"> --------- Co-authored-by: Catherine Lee <55311782+c298lee@users.noreply.github.com>
…3712) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.3 to 4.5.5. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite/blob/v4.5.5/packages/vite/CHANGELOG.md">vite's changelog</a>.</em></p> <blockquote> <h2><!-- raw HTML omitted -->4.5.5 (2024-09-16)<!-- raw HTML omitted --></h2> <h2><!-- raw HTML omitted -->4.5.4 (2024-09-16)<!-- raw HTML omitted --></h2> <ul> <li>fix: avoid DOM Clobbering gadget in <code>getRelativeUrlFromDocument</code> (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18115">#18115</a>) (<a href="https://github.com/vitejs/vite/commit/e812716">e812716</a>), closes <a href="https://redirect.github.com/vitejs/vite/issues/18115">#18115</a></li> <li>fix: backport <a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18112">#18112</a>, fs raw query (<a href="https://github.com/vitejs/vite/commit/b901438">b901438</a>), closes <a href="https://redirect.github.com/vitejs/vite/issues/18112">#18112</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/vitejs/vite/commit/f1d8845fff4842c3a0fec69309d9475c12c30cd9"><code>f1d8845</code></a> release: v4.5.5</li> <li><a href="https://github.com/vitejs/vite/commit/2466c0862587c1beb4171daa02d8a541a8be18f6"><code>2466c08</code></a> release: v4.5.4</li> <li><a href="https://github.com/vitejs/vite/commit/e8127166979e7ace6eeaa2c3b733c8994caa31f3"><code>e812716</code></a> fix: avoid DOM Clobbering gadget in <code>getRelativeUrlFromDocument</code> (<a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18115">#18115</a>)</li> <li><a href="https://github.com/vitejs/vite/commit/b901438f99e667f76662840826eec91c8ab3b3e7"><code>b901438</code></a> fix: backport <a href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/18112">#18112</a>, fs raw query</li> <li>See full diff in <a href="https://github.com/vitejs/vite/commits/v4.5.5/packages/vite">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=4.5.3&new-version=4.5.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/getsentry/sentry-javascript/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Closes #13471 This can be used when you know what you're doing to avoid the warning log.
This PR adds the external contributor to the CHANGELOG.md file, so that they are credited for their contribution. See #13068 Co-authored-by: c298lee <55311782+c298lee@users.noreply.github.com>
…arent element lookup (#13717) Change the order for looking up parent elements to inject the integration script: 1. `document.body` 2. `document.head` 3. `document.currentScript.parentElement`
With this change, it is easier to figure out from logs if the correct or incorrect http instrumentation is added. Now, if you see e.g. this in the logs, if users have enabled logs (`debug: true` if not using `skipOpenTelemetrySetup: true`, else using native OTEL debug logs with e.g. `diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)`): ```js @opentelemetry/instrumentation-http-sentry Applying instrumentation patch for nodejs core module on require hook { module: 'http' } @opentelemetry/instrumentation-http Applying instrumentation patch for nodejs core module on require hook { module: 'http' } ``` you can tell that that it has been double instrumenting this incorrectly. You should never see the `@opentelemetry/instrumentation-http` entry anymore, otherwise something is wrong there. This came out of getsentry/sentry-docs#11378, I looked into various ways to debug this but there is not really an API provided by OTEL that allows us to figure this out 😬
…3381) This PR removes the check for `hasTracingEnabled` in `getInjectionData` and simply always takes the non-recording span if there is one. Which is always the case in server applications when handling a request. For non-request-handling situations, we fall back anyway to the propagation context.
Looks like the bug that made us pin to Node 22.6.0 in our Node unit tests was fixed and released in 22.8.0. This PR reverts the pin, meaning we test against the latest Node 22 version again.
Related #13582 This work adds the `deleteSourcemapsAfterUpload` option to the Gatsby plugin, allowing it to be passed to the Webpack plugin to set the `sourceMapFilesToDeleteAfterUpload` without exposing the API. This simplifies our workflow by eliminating the need to apply a Yarn patch to modify the package whenever we want to use `filesToDeleteAfterUpload`. Before submitting a pull request, please take a look at our [Contributing](https://github.com/getsentry/sentry-javascript/blob/master/CONTRIBUTING.md) guidelines and verify: - [x] If you've added code that should be tested, please add tests. - [x] Ensure your code lints and the test suite passes (`yarn lint`) & (`yarn test`). --------- Co-authored-by: Luca Forstner <luca.forstner@sentry.io>
Depending on the [nitro preset](https://nitro.unjs.io/deploy), the build output changes. By using the `serverDir` option, the directory can be retrieved dynamically.
This PR adds the external contributor to the CHANGELOG.md file, so that they are credited for their contribution. See #13610 --------- Co-authored-by: lforst <8118419+lforst@users.noreply.github.com> Co-authored-by: Abhijeet Prasad <aprasad@sentry.io>
Adds integration for `dataloader` using [`@opentelemetry/instrumentation-dataloader`](https://www.npmjs.com/package/@opentelemetry/instrumentation-dataloader) on the background. A few notes: - We currently don't have access to the lookup / request as there is no hook from `@opentelemetry/instrumentation-dataloader`. So, we don't have `cache.hit`, `cache.key`, `cache.item_size` and so on, in this integration. I can try to implement those upstream, but if you have another way in mind to access those please let me know. - `@opentelemetry/instrumentation-dataloader` only records spans for `load`, `loadMany` and `batch`, which all are `cache.get` operations. There are also `prime`, `clear`, `clearAll`. We also can implement those upstream and update the integration in future.
Adding the node option can be a confusing step. This adds a log output which already includes the correct file path to add. It looks like this: ``` [Sentry] Using your sentry.server.config.ts file for the server-side Sentry configuration. Make sure to add the Node option import to the Node command where you deploy and/or run your application. This preloads the Sentry configuration at server startup. You can do this via a command-line flag (node --import ./.output/server/sentry.server.config.mjs [...]) or via an environment variable (NODE_OPTIONS='--import ./.output/server/sentry.server.config.mjs' node [...]). ```
…bugging (#13721) * Adds an `onError` callback for replay SDK exceptions * Do not log empty messages when calling `logger.exception` * Send `ratelimit_backoff` client report when necessary (instead of generic `send_error`)
size-limit report 📦
|
CHANGELOG.md
Outdated
|
||
- **feat(node): Add `dataloader` integration (#13664)** | ||
|
||
This release adds a new integration for `dataloader` which is based on `@opentelemetry/instrumentation-dataloader`. |
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.
This release adds a new integration for `dataloader` which is based on `@opentelemetry/instrumentation-dataloader`. | |
This release adds a new optional integration for the [`dataloader` package](https://www.npmjs.com/package/dataloader). |
CHANGELOG.md
Outdated
- feat(gatsby): Add optional `deleteSourcemapsAfterUpload` (#13610) | ||
- feat(nextjs): Give app router prefetch requests a `http.server.prefetch` op (#13600) | ||
- feat(nextjs): Improve Next.js serverside span data quality (#13652) | ||
- feat(node): Add `disableInstrumentationWarnings` option (#13693) feat(nuxt): Adding `experimental_basicServerTracing` |
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.
- feat(node): Add `disableInstrumentationWarnings` option (#13693) feat(nuxt): Adding `experimental_basicServerTracing` | |
- feat(node): Add `disableInstrumentationWarnings` option (#13693) | |
- feat(nuxt): Adding `experimental_basicServerTracing` option to Nuxt module (#13643) |
4883ec2
to
5b2b183
Compare
5b2b183
to
f4ab300
Compare
CHANGELOG.md
Outdated
|
||
- **feat(node): Add `dataloader` integration (#13664)** | ||
|
||
This release adds a new optional integration for the [`dataloader` package](https://www.npmjs.com/package/dataloader). |
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.
It's not optional - it's enabled by default:
dataloaderIntegration(), |
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.
oh thanks
f4ab300
to
1914376
Compare
No description provided.