|
4 | 4 |
|
5 | 5 | - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott |
6 | 6 |
|
| 7 | +## 10.47.0 |
| 8 | + |
| 9 | +### Important Changes |
| 10 | + |
| 11 | +- **feat(node-core): Add OTLP integration for node-core/light ([#19729](https://github.com/getsentry/sentry-javascript/pull/19729))** |
| 12 | + |
| 13 | + Added `otlpIntegration` at `@sentry/node-core/light/otlp` for users who manage |
| 14 | + their own OpenTelemetry setup and want to send trace data to Sentry without |
| 15 | + adopting the full `@sentry/node` SDK. |
| 16 | + |
| 17 | + ```js |
| 18 | + import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; |
| 19 | + import * as Sentry from '@sentry/node-core/light'; |
| 20 | + import { otlpIntegration } from '@sentry/node-core/light/otlp'; |
| 21 | + |
| 22 | + const provider = new NodeTracerProvider(); |
| 23 | + provider.register(); |
| 24 | + |
| 25 | + Sentry.init({ |
| 26 | + dsn: '__DSN__', |
| 27 | + integrations: [ |
| 28 | + otlpIntegration({ |
| 29 | + // Export OTel spans to Sentry via OTLP (default: true) |
| 30 | + setupOtlpTracesExporter: true, |
| 31 | + }), |
| 32 | + ], |
| 33 | + }); |
| 34 | + ``` |
| 35 | + |
| 36 | + The integration links Sentry errors to OTel traces and exports spans to Sentry via OTLP. |
| 37 | + |
| 38 | +- **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))** |
| 39 | + |
| 40 | + 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. |
| 41 | + |
| 42 | + ```ts |
| 43 | + // Node.js |
| 44 | + import * as Sentry from '@sentry/node'; |
| 45 | + |
| 46 | + Sentry.init({ |
| 47 | + dsn: '...', |
| 48 | + integrations: [Sentry.nodeRuntimeMetricsIntegration()], |
| 49 | + }); |
| 50 | + |
| 51 | + // Bun |
| 52 | + import * as Sentry from '@sentry/bun'; |
| 53 | + |
| 54 | + Sentry.init({ |
| 55 | + dsn: '...', |
| 56 | + integrations: [Sentry.bunRuntimeMetricsIntegration()], |
| 57 | + }); |
| 58 | + ``` |
| 59 | + |
| 60 | +- **feat(core): Support embedding APIs in google-genai ([#19797](https://github.com/getsentry/sentry-javascript/pull/19797))** |
| 61 | + |
| 62 | + Adds instrumentation for the Google GenAI [`embedContent`](https://ai.google.dev/gemini-api/docs/embeddings) API, creating `gen_ai.embeddings` spans. |
| 63 | + |
| 64 | +- **feat(browser): Add `elementTimingIntegration` for tracking element render and load times ([#19869](https://github.com/getsentry/sentry-javascript/pull/19869))** |
| 65 | + |
| 66 | + 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. |
| 67 | + |
| 68 | + ```ts |
| 69 | + import * as Sentry from '@sentry/browser'; |
| 70 | + |
| 71 | + Sentry.init({ |
| 72 | + dsn: '__DSN__', |
| 73 | + integrations: [Sentry.browserTracingIntegration(), Sentry.elementTimingIntegration()], |
| 74 | + }); |
| 75 | + ``` |
| 76 | + |
| 77 | + ```html |
| 78 | + <img src="hero.jpg" elementtiming="hero-image" /> |
| 79 | + ``` |
| 80 | + |
| 81 | +### Other Changes |
| 82 | + |
| 83 | +- feat(nuxt): Add middleware instrumentation compatibility for Nuxt 5 ([#19968](https://github.com/getsentry/sentry-javascript/pull/19968)) |
| 84 | +- feat(nuxt): Support parametrized SSR routes in Nuxt 5 ([#19977](https://github.com/getsentry/sentry-javascript/pull/19977)) |
| 85 | +- feat(solid): Add route parametrization for Solid Router ([#20031](https://github.com/getsentry/sentry-javascript/pull/20031)) |
| 86 | +- fix(core): Guard nullish response in supabase PostgREST handler ([#20033](https://github.com/getsentry/sentry-javascript/pull/20033)) |
| 87 | +- fix(node): Deduplicate `sentry-trace` and `baggage` headers on outgoing requests ([#19960](https://github.com/getsentry/sentry-javascript/pull/19960)) |
| 88 | +- fix(node): Ensure startNewTrace propagates traceId in OTel environments ([#19963](https://github.com/getsentry/sentry-javascript/pull/19963)) |
| 89 | +- fix(nuxt): Use virtual module for Nuxt pages data (SSR route parametrization) ([#20020](https://github.com/getsentry/sentry-javascript/pull/20020)) |
| 90 | +- fix(opentelemetry): Convert seconds timestamps in span.end() to milliseconds ([#19958](https://github.com/getsentry/sentry-javascript/pull/19958)) |
| 91 | +- fix(profiling): Disable profiling in worker threads ([#20040](https://github.com/getsentry/sentry-javascript/pull/20040)) |
| 92 | +- fix(react-router): Disable debug ID injection in Vite plugin to prevent double injection ([#19890](https://github.com/getsentry/sentry-javascript/pull/19890)) |
| 93 | +- refactor(browser): Reduce browser package bundle size ([#19856](https://github.com/getsentry/sentry-javascript/pull/19856)) |
| 94 | +- feat(deps): Bump OpenTelemetry dependencies ([#20046](https://github.com/getsentry/sentry-javascript/pull/20046)) |
| 95 | + |
| 96 | +<details> |
| 97 | + <summary> <strong>Internal Changes</strong> </summary> |
| 98 | + |
| 99 | +- chore: Add shared validate-pr composite action ([#20025](https://github.com/getsentry/sentry-javascript/pull/20025)) |
| 100 | +- chore: Update validate-pr action to latest version ([#20027](https://github.com/getsentry/sentry-javascript/pull/20027)) |
| 101 | +- chore(deps): Bump @apollo/server from 5.4.0 to 5.5.0 ([#20007](https://github.com/getsentry/sentry-javascript/pull/20007)) |
| 102 | +- chore(deps): Bump amqplib from 0.10.7 to 0.10.9 ([#20000](https://github.com/getsentry/sentry-javascript/pull/20000)) |
| 103 | +- chore(deps): Bump srvx from 0.11.12 to 0.11.13 ([#20001](https://github.com/getsentry/sentry-javascript/pull/20001)) |
| 104 | +- chore(deps-dev): Bump node-forge from 1.3.2 to 1.4.0 ([#20012](https://github.com/getsentry/sentry-javascript/pull/20012)) |
| 105 | +- chore(deps-dev): Bump yaml from 2.8.2 to 2.8.3 ([#19985](https://github.com/getsentry/sentry-javascript/pull/19985)) |
| 106 | +- ci(deps): Bump actions/upload-artifact from 6 to 7 ([#19569](https://github.com/getsentry/sentry-javascript/pull/19569)) |
| 107 | +- docs(release): Update publishing-a-release.md ([#19982](https://github.com/getsentry/sentry-javascript/pull/19982)) |
| 108 | +- feat(deps): Bump babel-loader from 10.0.0 to 10.1.1 ([#19997](https://github.com/getsentry/sentry-javascript/pull/19997)) |
| 109 | +- feat(deps): Bump handlebars from 4.7.7 to 4.7.9 ([#20008](https://github.com/getsentry/sentry-javascript/pull/20008)) |
| 110 | +- fix(browser-tests): Pin axios to 1.13.5 to avoid compromised 1.14.1 ([#20047](https://github.com/getsentry/sentry-javascript/pull/20047)) |
| 111 | +- fix(ci): Update validate-pr action to remove draft enforcement ([#20035](https://github.com/getsentry/sentry-javascript/pull/20035)) |
| 112 | +- fix(ci): Update validate-pr action to remove draft enforcement ([#20037](https://github.com/getsentry/sentry-javascript/pull/20037)) |
| 113 | +- fix(e2e): Pin @opentelemetry/api to 1.9.0 in ts3.8 test app ([#19992](https://github.com/getsentry/sentry-javascript/pull/19992)) |
| 114 | +- ref(browser-tests): Add waitForMetricRequest helper ([#20002](https://github.com/getsentry/sentry-javascript/pull/20002)) |
| 115 | +- ref(core): Consolidate getOperationName into one shared utility ([#19971](https://github.com/getsentry/sentry-javascript/pull/19971)) |
| 116 | +- ref(core): Introduce instrumented method registry for AI integrations ([#19981](https://github.com/getsentry/sentry-javascript/pull/19981)) |
| 117 | +- test(deno): Expand Deno E2E test coverage ([#19957](https://github.com/getsentry/sentry-javascript/pull/19957)) |
| 118 | +- test(e2e): Add e2e tests for `nodeRuntimeMetricsIntegration` ([#19989](https://github.com/getsentry/sentry-javascript/pull/19989)) |
| 119 | + |
| 120 | +</details> |
| 121 | + |
7 | 122 | ## 10.46.0 |
8 | 123 |
|
9 | 124 | ### Important Changes |
|
73 | 188 |
|
74 | 189 | Work in this release was contributed by @roli-lpci. Thank you for your contributions! |
75 | 190 |
|
| 191 | +### Important Changes |
| 192 | + |
| 193 | +- **feat(node): Add `nodeRuntimeMetricsIntegration` for automatic Node.js runtime metrics ([#19923](https://github.com/getsentry/sentry-javascript/pull/19923))** |
| 194 | + |
| 195 | + 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. |
| 196 | + |
| 197 | + ```ts |
| 198 | + import * as Sentry from '@sentry/node'; |
| 199 | + |
| 200 | + Sentry.init({ |
| 201 | + dsn: '...', |
| 202 | + integrations: [Sentry.nodeRuntimeMetricsIntegration()], |
| 203 | + }); |
| 204 | + ``` |
| 205 | + |
76 | 206 | ## 10.45.0 |
77 | 207 |
|
78 | 208 | ### Important Changes |
|
0 commit comments