Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
3e4ac69
test(deno): Expand Deno E2E test coverage (#19957)
chargome Mar 25, 2026
4ffea2d
feat(node): Add `nodeRuntimeMetricsIntegration` (#19923)
chargome Mar 25, 2026
9dfbc7b
Merge pull request #19980 from getsentry/master
github-actions[bot] Mar 25, 2026
c77eff1
docs(release): Update publishing-a-release.md (#19982)
nicohrubec Mar 25, 2026
a1df56d
fix(opentelemetry): Convert seconds timestamps in span.end() to milli…
logaretm Mar 26, 2026
c8d4677
feat(nuxt): Support parametrized SSR routes in Nuxt 5 (#19977)
s1gr1d Mar 26, 2026
4a43db2
ref(core): Consolidate getOperationName into one shared utility (#19971)
nicohrubec Mar 26, 2026
f685a85
fix(e2e): Pin @opentelemetry/api to 1.9.0 in ts3.8 test app (#19992)
logaretm Mar 26, 2026
91709f0
feat(browser): Replace element timing spans with metrics (#19869)
logaretm Mar 26, 2026
e3bdbed
ref(core): Introduce instrumented method registry for AI integrations…
nicohrubec Mar 26, 2026
c0d52df
fix(node): Ensure startNewTrace propagates traceId in OTel environmen…
logaretm Mar 26, 2026
fa74db5
feat(core): Support embedding APIs in google-genai (#19797)
nicohrubec Mar 27, 2026
cd6d8cc
feat(deps): Bump handlebars from 4.7.7 to 4.7.9 (#20008)
dependabot[bot] Mar 27, 2026
819240d
chore(deps): Bump @apollo/server from 5.4.0 to 5.5.0 (#20007)
dependabot[bot] Mar 27, 2026
5ba0bd3
chore(deps): Bump srvx from 0.11.12 to 0.11.13 (#20001)
dependabot[bot] Mar 27, 2026
64cdce1
feat(deps): Bump babel-loader from 10.0.0 to 10.1.1 (#19997)
dependabot[bot] Mar 27, 2026
032dc48
ci(deps): Bump actions/upload-artifact from 6 to 7 (#19569)
dependabot[bot] Mar 27, 2026
d7eb659
chore(deps-dev): Bump yaml from 2.8.2 to 2.8.3 (#19985)
dependabot[bot] Mar 27, 2026
a8e14f9
chore(deps): Bump amqplib from 0.10.7 to 0.10.9 (#20000)
dependabot[bot] Mar 27, 2026
08fb122
chore(deps-dev): Bump node-forge from 1.3.2 to 1.4.0 (#20012)
dependabot[bot] Mar 27, 2026
9eb3d74
test(e2e): Add e2e tests for `nodeRuntimeMetricsIntegration` (#19989)
chargome Mar 27, 2026
b93ef56
feat(bun): Add `bunRuntimeMetricsIntegration` (#19979)
chargome Mar 27, 2026
02c9cd8
chore(deps-dev): remove esbuild override in astro-5-cf-workers E2E test
isaacs Mar 27, 2026
73f03bb
chore: Add shared validate-pr composite action (#20025)
stephanie-anderson Mar 27, 2026
ae74361
fix(nuxt): Use virtual module for Nuxt pages data (SSR route parametr…
s1gr1d Mar 27, 2026
fcdb62e
feat(nuxt): Add middleware instrumentation compatibility for Nuxt 5 (…
s1gr1d Mar 27, 2026
94534e6
chore: Update validate-pr action to latest version (#20027)
stephanie-anderson Mar 27, 2026
4747355
feat(solid): Add route parametrization for Solid Router (#20031)
andreiborza Mar 30, 2026
c8e56ff
fix(ci): Update validate-pr action to remove draft enforcement (#20035)
stephanie-anderson Mar 30, 2026
2a8c1d6
feat(node-core): Add OTLP integration for node-core/light (#19729)
andreiborza Mar 30, 2026
fff880e
fix(ci): Update validate-pr action to remove draft enforcement (#20037)
stephanie-anderson Mar 30, 2026
119c06f
fix(core): Guard nullish response in supabase PostgREST handler (#20033)
antonis Mar 30, 2026
738b3e7
refactor(browser): Reduce browser package bundle size (#19856)
HazAT Mar 30, 2026
08cab24
fix(node): Deduplicate `sentry-trace` and `baggage` headers on outgoi…
Lms24 Mar 30, 2026
9bfc682
ref(browser-tests): Add waitForMetricRequest helper (#20002)
logaretm Mar 30, 2026
28f94f3
fix(react-router): Disable debug ID injection in Vite plugin to preve…
isaacs Mar 19, 2026
61edc25
Merge pull request #19890 from getsentry/fix/react-router-debug-id-do…
isaacs Mar 30, 2026
3815492
fix(profiling): Disable profiling in worker threads (#20040)
chargome Mar 30, 2026
8f08fcb
fix(browser-tests): Pin axios to 1.13.5 to avoid compromised 1.14.1 (…
andreiborza Mar 31, 2026
2c0ce6f
feat(deps): Bump OpenTelemetry dependencies (#20046)
andreiborza Mar 31, 2026
3d4e38d
meta(changelog): Update changelog for 10.47.0
chargome Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ jobs:
run: yarn build

- name: Upload build artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: build-output
path: ${{ env.CACHED_BUILD_PATHS }}
Expand Down Expand Up @@ -351,7 +351,7 @@ jobs:
run: yarn build:tarball

- name: Archive artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: ${{ github.sha }}
retention-days: 90
Expand Down Expand Up @@ -588,7 +588,7 @@ jobs:
format(' --shard={0}/{1}', matrix.shard, matrix.shards) || '' }}

- name: Upload Playwright Traces
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name:
Expand Down Expand Up @@ -654,7 +654,7 @@ jobs:
yarn test:loader

- name: Upload Playwright Traces
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-traces-job_browser_loader_tests-${{ matrix.bundle}}
Expand Down Expand Up @@ -1030,7 +1030,7 @@ jobs:
SENTRY_E2E_WORKSPACE_ROOT: ${{ github.workspace }}

- name: Upload Playwright Traces
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-traces-job_e2e_playwright_tests-${{ matrix.test-application}}
Expand All @@ -1044,7 +1044,7 @@ jobs:
node ./scripts/normalize-e2e-test-dump-transaction-events.js

- name: Upload E2E Test Event Dumps
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name: E2E Test Dump (${{ matrix.label || matrix.test-application }})
Expand Down Expand Up @@ -1157,7 +1157,7 @@ jobs:
node ./scripts/normalize-e2e-test-dump-transaction-events.js

- name: Upload E2E Test Event Dumps
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure()
with:
name: E2E Test Dump (${{ matrix.label || matrix.test-application }})
Expand Down
130 changes: 0 additions & 130 deletions .github/workflows/create-issue-for-unreferenced-prs.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/flaky-test-detector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
TEST_RUN_COUNT: 'AUTO'

- name: Upload Playwright Traces
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: failure() && steps.test.outcome == 'failure'
with:
name: playwright-test-results
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/validate-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Validate PR

on:
pull_request_target:
types: [opened, reopened]

jobs:
validate-pr:
runs-on: ubuntu-24.04
permissions:
pull-requests: write
steps:
- uses: getsentry/github-workflows/validate-pr@0b52fc6a867b744dcbdf5d25c18bc8d1c95710e1
with:
app-id: ${{ vars.SDK_MAINTAINER_BOT_APP_ID }}
private-key: ${{ secrets.SDK_MAINTAINER_BOT_PRIVATE_KEY }}
4 changes: 2 additions & 2 deletions .size-limit.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ module.exports = [
path: createCDNPath('bundle.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '86 KB',
limit: '88 KB',
},
{
name: 'CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed',
Expand All @@ -262,7 +262,7 @@ module.exports = [
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '210 KB',
limit: '211 KB',
},
{
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
Expand Down
130 changes: 130 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,121 @@

- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott

## 10.47.0

### Important Changes

- **feat(node-core): Add OTLP integration for node-core/light ([#19729](https://github.com/getsentry/sentry-javascript/pull/19729))**

Added `otlpIntegration` at `@sentry/node-core/light/otlp` for users who manage
their own OpenTelemetry setup and want to send trace data to Sentry without
adopting the full `@sentry/node` SDK.

```js
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
import * as Sentry from '@sentry/node-core/light';
import { otlpIntegration } from '@sentry/node-core/light/otlp';

const provider = new NodeTracerProvider();
provider.register();

Sentry.init({
dsn: '__DSN__',
integrations: [
otlpIntegration({
// Export OTel spans to Sentry via OTLP (default: true)
setupOtlpTracesExporter: true,
}),
],
});
```

The integration links Sentry errors to OTel traces and exports spans to Sentry via OTLP.

- **feat(node, bun): Add runtime metrics integrations for Node.js and Bun ([#19923](https://github.com/getsentry/sentry-javascript/pull/19923), [#19979](https://github.com/getsentry/sentry-javascript/pull/19979))**

New `nodeRuntimeMetricsIntegration` and `bunRuntimeMetricsIntegration` automatically collect runtime health metrics and send them to Sentry on a configurable interval (default: 30s). Collected metrics include memory (RSS, heap used/total), CPU utilization, event loop utilization, and process uptime. Node additionally collects event loop delay percentiles (p50, p99). Extra metrics like CPU time and external memory are available as opt-in.

```ts
// Node.js
import * as Sentry from '@sentry/node';

Sentry.init({
dsn: '...',
integrations: [Sentry.nodeRuntimeMetricsIntegration()],
});

// Bun
import * as Sentry from '@sentry/bun';

Sentry.init({
dsn: '...',
integrations: [Sentry.bunRuntimeMetricsIntegration()],
});
```

- **feat(core): Support embedding APIs in google-genai ([#19797](https://github.com/getsentry/sentry-javascript/pull/19797))**

Adds instrumentation for the Google GenAI [`embedContent`](https://ai.google.dev/gemini-api/docs/embeddings) API, creating `gen_ai.embeddings` spans.

- **feat(browser): Add `elementTimingIntegration` for tracking element render and load times ([#19869](https://github.com/getsentry/sentry-javascript/pull/19869))**

The new `elementTimingIntegration` captures Element Timing API data as Sentry metrics. It emits `element_timing.render_time` and `element_timing.load_time` distribution metrics for elements annotated with the `elementtiming` HTML attribute.

```ts
import * as Sentry from '@sentry/browser';

Sentry.init({
dsn: '__DSN__',
integrations: [Sentry.browserTracingIntegration(), Sentry.elementTimingIntegration()],
});
```

```html
<img src="hero.jpg" elementtiming="hero-image" />
```

### Other Changes

- feat(nuxt): Add middleware instrumentation compatibility for Nuxt 5 ([#19968](https://github.com/getsentry/sentry-javascript/pull/19968))
- feat(nuxt): Support parametrized SSR routes in Nuxt 5 ([#19977](https://github.com/getsentry/sentry-javascript/pull/19977))
- feat(solid): Add route parametrization for Solid Router ([#20031](https://github.com/getsentry/sentry-javascript/pull/20031))
- fix(core): Guard nullish response in supabase PostgREST handler ([#20033](https://github.com/getsentry/sentry-javascript/pull/20033))
- fix(node): Deduplicate `sentry-trace` and `baggage` headers on outgoing requests ([#19960](https://github.com/getsentry/sentry-javascript/pull/19960))
- fix(node): Ensure startNewTrace propagates traceId in OTel environments ([#19963](https://github.com/getsentry/sentry-javascript/pull/19963))
- fix(nuxt): Use virtual module for Nuxt pages data (SSR route parametrization) ([#20020](https://github.com/getsentry/sentry-javascript/pull/20020))
- fix(opentelemetry): Convert seconds timestamps in span.end() to milliseconds ([#19958](https://github.com/getsentry/sentry-javascript/pull/19958))
- fix(profiling): Disable profiling in worker threads ([#20040](https://github.com/getsentry/sentry-javascript/pull/20040))
- fix(react-router): Disable debug ID injection in Vite plugin to prevent double injection ([#19890](https://github.com/getsentry/sentry-javascript/pull/19890))
- refactor(browser): Reduce browser package bundle size ([#19856](https://github.com/getsentry/sentry-javascript/pull/19856))
- feat(deps): Bump OpenTelemetry dependencies ([#20046](https://github.com/getsentry/sentry-javascript/pull/20046))

<details>
<summary> <strong>Internal Changes</strong> </summary>

- chore: Add shared validate-pr composite action ([#20025](https://github.com/getsentry/sentry-javascript/pull/20025))
- chore: Update validate-pr action to latest version ([#20027](https://github.com/getsentry/sentry-javascript/pull/20027))
- chore(deps): Bump @apollo/server from 5.4.0 to 5.5.0 ([#20007](https://github.com/getsentry/sentry-javascript/pull/20007))
- chore(deps): Bump amqplib from 0.10.7 to 0.10.9 ([#20000](https://github.com/getsentry/sentry-javascript/pull/20000))
- chore(deps): Bump srvx from 0.11.12 to 0.11.13 ([#20001](https://github.com/getsentry/sentry-javascript/pull/20001))
- chore(deps-dev): Bump node-forge from 1.3.2 to 1.4.0 ([#20012](https://github.com/getsentry/sentry-javascript/pull/20012))
- chore(deps-dev): Bump yaml from 2.8.2 to 2.8.3 ([#19985](https://github.com/getsentry/sentry-javascript/pull/19985))
- ci(deps): Bump actions/upload-artifact from 6 to 7 ([#19569](https://github.com/getsentry/sentry-javascript/pull/19569))
- docs(release): Update publishing-a-release.md ([#19982](https://github.com/getsentry/sentry-javascript/pull/19982))
- feat(deps): Bump babel-loader from 10.0.0 to 10.1.1 ([#19997](https://github.com/getsentry/sentry-javascript/pull/19997))
- feat(deps): Bump handlebars from 4.7.7 to 4.7.9 ([#20008](https://github.com/getsentry/sentry-javascript/pull/20008))
- fix(browser-tests): Pin axios to 1.13.5 to avoid compromised 1.14.1 ([#20047](https://github.com/getsentry/sentry-javascript/pull/20047))
- fix(ci): Update validate-pr action to remove draft enforcement ([#20035](https://github.com/getsentry/sentry-javascript/pull/20035))
- fix(ci): Update validate-pr action to remove draft enforcement ([#20037](https://github.com/getsentry/sentry-javascript/pull/20037))
- fix(e2e): Pin @opentelemetry/api to 1.9.0 in ts3.8 test app ([#19992](https://github.com/getsentry/sentry-javascript/pull/19992))
- ref(browser-tests): Add waitForMetricRequest helper ([#20002](https://github.com/getsentry/sentry-javascript/pull/20002))
- ref(core): Consolidate getOperationName into one shared utility ([#19971](https://github.com/getsentry/sentry-javascript/pull/19971))
- ref(core): Introduce instrumented method registry for AI integrations ([#19981](https://github.com/getsentry/sentry-javascript/pull/19981))
- test(deno): Expand Deno E2E test coverage ([#19957](https://github.com/getsentry/sentry-javascript/pull/19957))
- test(e2e): Add e2e tests for `nodeRuntimeMetricsIntegration` ([#19989](https://github.com/getsentry/sentry-javascript/pull/19989))

</details>

## 10.46.0

### Important Changes
Expand Down Expand Up @@ -73,6 +188,21 @@

Work in this release was contributed by @roli-lpci. Thank you for your contributions!

### Important Changes

- **feat(node): Add `nodeRuntimeMetricsIntegration` for automatic Node.js runtime metrics ([#19923](https://github.com/getsentry/sentry-javascript/pull/19923))**

The new `nodeRuntimeMetricsIntegration` automatically collects Node.js runtime health metrics and sends them to Sentry. Eight metrics are emitted by default every 30 seconds: memory (RSS, heap used/total), CPU utilization, event loop delay (p50, p99), event loop utilization, and process uptime. Additional metrics are available as opt-in.

```ts
import * as Sentry from '@sentry/node';

Sentry.init({
dsn: '...',
integrations: [Sentry.nodeRuntimeMetricsIntegration()],
});
```

## 10.45.0

### Important Changes
Expand Down
4 changes: 2 additions & 2 deletions dev-packages/browser-integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@
"@sentry-internal/rrweb": "2.34.0",
"@sentry/browser": "10.46.0",
"@supabase/supabase-js": "2.49.3",
"axios": "^1.12.2",
"babel-loader": "^10.0.0",
"axios": "1.13.5",
"babel-loader": "^10.1.1",
"fflate": "0.8.2",
"html-webpack-plugin": "^5.5.0",
"webpack": "^5.95.0"
Expand Down
Loading
Loading