From 9de8316c183599a0531c36992ed3f5dae350bb22 Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:12:15 +0000 Subject: [PATCH 01/55] Bump API schema to 0ffea8b0 (#12408) Co-authored-by: openapi-getsentry-bot --- src/build/resolveOpenAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/resolveOpenAPI.ts b/src/build/resolveOpenAPI.ts index 1e8d7420a8db3..bc47f94f3f5b9 100644 --- a/src/build/resolveOpenAPI.ts +++ b/src/build/resolveOpenAPI.ts @@ -8,7 +8,7 @@ import {DeRefedOpenAPI} from './open-api/types'; // SENTRY_API_SCHEMA_SHA is used in the sentry-docs GHA workflow in getsentry/sentry-api-schema. // DO NOT change variable name unless you change it in the sentry-docs GHA workflow in getsentry/sentry-api-schema. -const SENTRY_API_SCHEMA_SHA = '216615cb68bc61c73c5acc421c92e7dc5adae687'; +const SENTRY_API_SCHEMA_SHA = '0ffea8b062738e10105ef119851ea0ab8172758f'; const activeEnv = process.env.GATSBY_ENV || process.env.NODE_ENV || 'development'; From 2b7705be5d35a173e282c9f082d1872d1417761d Mon Sep 17 00:00:00 2001 From: Matthieu Bacconnier Date: Tue, 21 Jan 2025 22:36:12 +0100 Subject: [PATCH 02/55] Update knex Node integration (#12223) Sentry.knexIntegration is not a constructor (only a void function can be called with the 'new' keyword). --- .../javascript/common/configuration/integrations/knex.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/javascript/common/configuration/integrations/knex.mdx b/docs/platforms/javascript/common/configuration/integrations/knex.mdx index e1fb4f9fb8af9..092c0de49488e 100644 --- a/docs/platforms/javascript/common/configuration/integrations/knex.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/knex.mdx @@ -34,7 +34,7 @@ The `knexIntegration` adds instrumentation for the `knex` library to capture spa ```javascript Sentry.init({ - integrations: [new Sentry.knexIntegration()], + integrations: [Sentry.knexIntegration()], }); ``` From 825f7ee7825e17cb6640eba85833f3ece1ecd476 Mon Sep 17 00:00:00 2001 From: Andrew Liu <159852527+aliu39@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:52:55 -0800 Subject: [PATCH 03/55] ref(feedback): update JS SDK API example (#12409) * ref(feedback): update JS SDK API example * Rm fdf * Review comments --- .../javascript/common/user-feedback/index.mdx | 7 ++++--- .../sdk-api-example/javascript.mdx | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/platforms/javascript/common/user-feedback/index.mdx b/docs/platforms/javascript/common/user-feedback/index.mdx index e1e18b0dfe6fe..8e993fe5f929c 100644 --- a/docs/platforms/javascript/common/user-feedback/index.mdx +++ b/docs/platforms/javascript/common/user-feedback/index.mdx @@ -51,11 +51,12 @@ The User Feedback widget integrates easily with or the return value of the method capturing an event. +You can optionally pass in an `associatedEventId` to associate user feedback with an error event, giving you additional insight into issues. To get an event ID, you have 2 options: +1. Use the return value of a method capturing an event. +2. Use {' '}and `Sentry.lastEventId()`. - -Alternatively, you can use the [User Feedback API endpoint](/api/projects/submit-user-feedback/) directly. + ## Crash-Report Modal diff --git a/platform-includes/user-feedback/sdk-api-example/javascript.mdx b/platform-includes/user-feedback/sdk-api-example/javascript.mdx index 7fe8ab66c98ef..a7717c6de83ff 100644 --- a/platform-includes/user-feedback/sdk-api-example/javascript.mdx +++ b/platform-includes/user-feedback/sdk-api-example/javascript.mdx @@ -1,9 +1,22 @@ -```javascript +```javascript {tabTitle: JavaScript} +import * as Sentry from "@sentry/browser"; + +// All feedback fields are optional, except `message`. +const userFeedback = { + name: "John Doe", + email: "john@doe.com", + message: "I really like your App, thanks!", +}; +Sentry.captureFeedback(userFeedback); +``` + +```javascript {tabTitle: JavaScript with eventId} import * as Sentry from "@sentry/browser"; -const eventId = Sentry.captureMessage("User Feedback"); +const eventId = Sentry.captureException(new Error("Something went wrong!")); // OR: const eventId = Sentry.lastEventId(); +// All feedback fields are optional, except `message`. const userFeedback = { name: "John Doe", email: "john@doe.com", From b4028244505b67e3ae0d5faa591e1120f4152c2a Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 22:00:00 +0000 Subject: [PATCH 04/55] Bump API schema to c6ff50de (#12411) Co-authored-by: openapi-getsentry-bot --- src/build/resolveOpenAPI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/resolveOpenAPI.ts b/src/build/resolveOpenAPI.ts index bc47f94f3f5b9..d4735ed6e114c 100644 --- a/src/build/resolveOpenAPI.ts +++ b/src/build/resolveOpenAPI.ts @@ -8,7 +8,7 @@ import {DeRefedOpenAPI} from './open-api/types'; // SENTRY_API_SCHEMA_SHA is used in the sentry-docs GHA workflow in getsentry/sentry-api-schema. // DO NOT change variable name unless you change it in the sentry-docs GHA workflow in getsentry/sentry-api-schema. -const SENTRY_API_SCHEMA_SHA = '0ffea8b062738e10105ef119851ea0ab8172758f'; +const SENTRY_API_SCHEMA_SHA = 'c6ff50dee169f74ebaadca8f1a61566b501a074a'; const activeEnv = process.env.GATSBY_ENV || process.env.NODE_ENV || 'development'; From 77d86f8a2a06561db44d3e8c67b4c90cf9ece4b5 Mon Sep 17 00:00:00 2001 From: Cathy Teng <70817427+cathteng@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:13:19 -0800 Subject: [PATCH 05/55] chore(github-enterprise): add note about resolvable installation URL (#12410) --- .../organization/integrations/source-code-mgmt/github/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/organization/integrations/source-code-mgmt/github/index.mdx b/docs/organization/integrations/source-code-mgmt/github/index.mdx index 363f635fe3e87..c88d5303fadf8 100644 --- a/docs/organization/integrations/source-code-mgmt/github/index.mdx +++ b/docs/organization/integrations/source-code-mgmt/github/index.mdx @@ -159,7 +159,7 @@ If you're using GitHub Enterprise Cloud, follow the [instructions for GitHub](/o ![Add Installation](./img/github-e-add-installation.png) -4. Fill out the following form with information from your GitHub apps configuration page. +4. Fill out the following form with information from your GitHub apps configuration page. The installation URL must be resolvable over the Internet. ![GitHub Enterprise configuration form](./img/github-e-form.png) From 0915205ac77652b90ac871e1b84512bbd15258be Mon Sep 17 00:00:00 2001 From: Andrew Liu <159852527+aliu39@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:24:56 -0800 Subject: [PATCH 06/55] fix(feedback): fix typo in UR envelope item (#12412) --- develop-docs/sdk/data-model/envelope-items.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/develop-docs/sdk/data-model/envelope-items.mdx b/develop-docs/sdk/data-model/envelope-items.mdx index c5adff7fb6d2b..cb116ecf6713c 100644 --- a/develop-docs/sdk/data-model/envelope-items.mdx +++ b/develop-docs/sdk/data-model/envelope-items.mdx @@ -260,8 +260,7 @@ Envelope. ### User Report - Deprecated -Item type `"user_report"`. This is an older way of submitting user feedback we -are have now deprecated. It continues to work so older SDKs won't break. But new implementation should follow the `feedback` item type described above. +Item type `"user_report"`. This is an older, deprecated way of submitting user feedback. It continues to work so older SDKs won't break. New implementations should follow the `feedback` item type described above. This item works by associating user information and comments with an event. If both the item and its associated event are accepted, we convert it to a user feedback. From f5946d2fc9cb4321d3611c12f8a82741b7a082eb Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Wed, 22 Jan 2025 05:34:52 +0100 Subject: [PATCH 07/55] Restore Java Hub docs as versioned docs for v7 and prior (#12401) * Update Java SDK v8 deprecation removals (#11820) * Update Java SDK v8 deprecation removals * Update docs/platforms/android/configuration/options.mdx Co-authored-by: Lukas Bloder --------- Co-authored-by: Lukas Bloder * Add documentation on how to check-in to an environment with CheckInUtils (#11826) * Remove `enableTracing` option from Java SDK as it has been removed in v8 (#11575) * Update OpenTelemetry docs for Java v8 (#12209) * Update OTel docs for Java v8 * Apply suggestions from code review Co-authored-by: Alex Krawiec --------- Co-authored-by: Alex Krawiec * Document `forceInit` for Java SDK (#12260) * document forceInit option * Apply suggestions from code review Co-authored-by: Lukas Bloder --------- Co-authored-by: Lukas Bloder * Improve `bindToScope` docs for Java (#12263) * Improve bindToScope docs * Apply suggestions from code review Co-authored-by: Alex Krawiec --------- Co-authored-by: Alex Krawiec * Docs for `sentry-graphql-22` (#12259) * Duplicate docs for graphql-java v22 * link between graphql docs versions * Apply suggestions from code review Co-authored-by: Alex Krawiec --------- Co-authored-by: Alex Krawiec * Update platform docs for v8 and use OpenTelemetry (#12232) * Update OTel docs for Java v8 * Change platform docs for v8 and use OTel * move includes to index file * CR changes * [getsentry/action-github-commit] Auto commit * close ConfigKey tag * replace link * fix link * Update Android SDK "Using Sentry within an SDK" section for Java SDK v8 (#12325) * Update Using Sentry within an SDK for v8 * Update docs/platforms/android/configuration/shared-environments.mdx Co-authored-by: Lukas Bloder --------- Co-authored-by: Lukas Bloder * Add documentation on setting SpanKind and capture HttpHeaders with OTEL (#12328) * wip add docs for capturing http headers as well as manual instrumentation using opentelemetry * Update docs/platforms/java/common/tracing/instrumentation/opentelemetry.mdx Co-authored-by: Alexander Dinauer --------- Co-authored-by: Alexander Dinauer * Replace `Hub` docs with `Scopes` (#12377) * Replace hub docs with scopes docs * Apply suggestions from code review Co-authored-by: Alex Krawiec Co-authored-by: Lukas Bloder * Apply suggestions from code review Co-authored-by: Lukas Bloder * Update docs/platforms/android/enriching-events/scopes/index.mdx * duplicate java into android * Update docs/platforms/android/enriching-events/scopes/index.mdx --------- Co-authored-by: Alex Krawiec Co-authored-by: Lukas Bloder * Restore Hub docs as versioned docs for v7 and prior --------- Co-authored-by: Lukas Bloder Co-authored-by: Max Hovens <14804474+maxhov@users.noreply.github.com> Co-authored-by: Alex Krawiec Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com> --- .../enriching-events/scopes/index__v7.x.mdx | 80 +++++++++++ .../enriching-events/scopes/index__v7.x.mdx | 130 ++++++++++++++++++ .../scopes/configure-scope/android__v7.x.mdx | 25 ++++ .../scopes/configure-scope/java__v7.x.mdx | 25 ++++ .../scope-callback-param/java__v7.x.mdx | 27 ++++ .../scopes/with-scope/java__v7.x.mdx | 41 ++++++ .../unset-user/java__v7.x.mdx | 15 ++ 7 files changed, 343 insertions(+) create mode 100644 docs/platforms/android/enriching-events/scopes/index__v7.x.mdx create mode 100644 docs/platforms/java/common/enriching-events/scopes/index__v7.x.mdx create mode 100644 platform-includes/enriching-events/scopes/configure-scope/android__v7.x.mdx create mode 100644 platform-includes/enriching-events/scopes/configure-scope/java__v7.x.mdx create mode 100644 platform-includes/enriching-events/scopes/scope-callback-param/java__v7.x.mdx create mode 100644 platform-includes/enriching-events/scopes/with-scope/java__v7.x.mdx create mode 100644 platform-includes/enriching-events/unset-user/java__v7.x.mdx diff --git a/docs/platforms/android/enriching-events/scopes/index__v7.x.mdx b/docs/platforms/android/enriching-events/scopes/index__v7.x.mdx new file mode 100644 index 0000000000000..773027b863d42 --- /dev/null +++ b/docs/platforms/android/enriching-events/scopes/index__v7.x.mdx @@ -0,0 +1,80 @@ +--- +title: Scopes and Hubs +description: "SDKs will typically automatically manage the scopes for you in the framework integrations. Learn what a scope is and how you can use it to your advantage." +--- + +When an event is captured and sent to Sentry, SDKs will merge that event data with extra +information from the current scope. SDKs will typically automatically manage the scopes +for you in the framework integrations and you don't need to think about them. However, +you should know what a scope is and how you can use it for your advantage. + +## What's a Scope, What's a Hub + +You can think of the hub as the central point that our SDKs use to route an +event to Sentry. When you call `init()` a hub is created and a client and a +blank scope are created on it. That hub is then associated with the current +thread and will internally hold a stack of scopes. + +The scope will hold useful information that should be sent along with the +event. For instance [contexts](../context/) or +[breadcrumbs](../breadcrumbs/) are stored on +the scope. When a scope is pushed, it inherits all data from the parent scope +and when it pops all modifications are reverted. + +The default SDK integrations will push and pop scopes intelligently. For +instance web framework integrations will create and destroy scopes around your +routes or controllers. + +## How the Scope and Hub Work + +As you start using an SDK, a scope and hub are automatically created for you out +of the box. It's unlikely that you'll interact with the hub directly unless you're +writing an integration or you want to create or destroy scopes. Scopes, on the +other hand are more user facing. You can call at any point in +time to modify data stored on the scope. This is useful for doing things like +[modifying the context](../context/). + +When you call a global function such as internally Sentry +discovers the current hub and asks it to capture an event. Internally the hub will +then merge the event with the topmost scope's data. + +## Configuring the Scope + +The most useful operation when working with scopes is the function. It can be used to reconfigure the current scope. + +You can, for instance, add custom tags or inform Sentry about the currently authenticated user. + + + +You can also apply this configuration when unsetting a user at logout: + + + + + +To learn what useful information can be associated with scopes see +[the context documentation](../context/). + +## Local Scopes + +We also support pushing and configuring a scope within a single call. This is typically +called , or implemented as a function parameter on the capture methods, depending on the SDK. It's very helpful if +you only want to send data for one specific event. + +### Using Scope Callback Parameter + +In the following example we use the scope callback parameter that is available for all `capture` methods to attach a `level` and a `tag` to only one specific error: + + + +Before the callback is invoked the SDK creates a clone of the current scope, and the changes +made will stay isolated within the callback function. This allows you to +more easily isolate pieces of context information to specific locations in your code or +even call `clear` to briefly remove all context information. + + + +Any exceptions that occur within the callback function for configuring a local scope will not be +caught, and all errors that occur will be silently ignored and **not** reported. + + diff --git a/docs/platforms/java/common/enriching-events/scopes/index__v7.x.mdx b/docs/platforms/java/common/enriching-events/scopes/index__v7.x.mdx new file mode 100644 index 0000000000000..f9d052c1fc595 --- /dev/null +++ b/docs/platforms/java/common/enriching-events/scopes/index__v7.x.mdx @@ -0,0 +1,130 @@ +--- +title: Scopes and Hubs +description: "SDKs will typically automatically manage the scopes for you in the framework integrations. Learn what a scope is and how you can use it to your advantage." +--- + +When an event is captured and sent to Sentry, SDKs will merge that event data with extra +information from the current scope. SDKs will typically automatically manage the scopes +for you in the framework integrations and you don't need to think about them. However, +you should know what a scope is and how you can use it for your advantage. + +## What's a Scope, What's a Hub + +You can think of the hub as the central point that our SDKs use to route an +event to Sentry. When you call `init()` a hub is created and a client and a +blank scope are created on it. That hub is then associated with the current +thread and will internally hold a stack of scopes. + +The scope will hold useful information that should be sent along with the +event. For instance [contexts](../context/) or +[breadcrumbs](../breadcrumbs/) are stored on +the scope. When a scope is pushed, it inherits all data from the parent scope +and when it pops all modifications are reverted. + +The default SDK integrations will push and pop scopes intelligently. For +instance web framework integrations will create and destroy scopes around your +routes or controllers. + +## How the Scope and Hub Work + +As you start using an SDK, a scope and hub are automatically created for you out +of the box. It's unlikely that you'll interact with the hub directly unless you're +writing an integration or you want to create or destroy scopes. Scopes, on the +other hand are more user facing. You can call at any point in +time to modify data stored on the scope. This is useful for doing things like +[modifying the context](../context/). + +When you call a global function such as internally Sentry +discovers the current hub and asks it to capture an event. Internally the hub will +then merge the event with the topmost scope's data. + +## Configuring the Scope + +The most useful operation when working with scopes is the function. It can be used to reconfigure the current scope. + +You can, for instance, add custom tags or inform Sentry about the currently authenticated user. + + + +You can also apply this configuration when unsetting a user at logout: + + + +To learn what useful information can be associated with scopes see +[the context documentation](../context/). + +## Local Scopes + +We also support pushing and configuring a scope within a single call. This is typically +called , or implemented as a function parameter on the capture methods, depending on the SDK. It's very helpful if +you only want to send data for one specific event. + +### Using + +In the following example we use to attach a `level` and a `tag` to only one specific error: + + + +While this example looks similar to , it is actually very different. +Calls to change the current active scope; all successive calls to will maintain previously set changes unless they are explicitly unset. + +On the other hand, creates a clone of the current scope, and the changes +made will stay isolated within the callback function. This allows you to +more easily isolate pieces of context information to specific locations in your code or +even call to briefly remove all context information. + +### Using Scope Callback Parameter + +In the following example we use the scope callback parameter that is available for all `capture` methods to attach a `level` and a `tag` to only one specific error: + + + +Before the callback is invoked the SDK creates a clone of the current scope, and the changes +made will stay isolated within the callback function. This allows you to +more easily isolate pieces of context information to specific locations in your code or +even call `clear` to briefly remove all context information. + + + +Any exceptions that occur within the callback function for configuring a local scope will not be +caught, and all errors that occur will be silently ignored and **not** reported. + + + +## Kotlin Coroutines + +Sentry's SDK for Java stores the scope and the context in a thread-local variable. To make sure that a coroutine has access to the correct Sentry context, an instance of `SentryContext` must be provided when launching a coroutine. + +### Installation + +```xml {tabTitle:Maven} + + io.sentry + sentry-kotlin-extensions + {{@inject packages.version('sentry.java.kotlin-extensions', '5.0.0') }} + +``` + +```groovy {tabTitle:Gradle} +implementation 'io.sentry:sentry-kotlin-extensions:{{@inject packages.version('sentry.java.kotlin-extensions', '5.0.0') }}' +``` + +```scala {tabTitle: SBT} +libraryDependencies += "io.sentry" % "sentry-kotlin-extensions" % "{{@inject packages.version('sentry.java.kotlin-extensions', '5.0.0') }}" +``` + +### Usage + +```kotlin +import io.sentry.kotlin.SentryContext +import io.sentry.Sentry + +launch(SentryContext()) { + // tag set in parent coroutine is visible to child coroutine + Sentry.setTag("parent-tag", "value") + launch() { + // tag set in child coroutine is not visible in parent coroutine + Sentry.setTag("child-tag", "value") + } +} +``` diff --git a/platform-includes/enriching-events/scopes/configure-scope/android__v7.x.mdx b/platform-includes/enriching-events/scopes/configure-scope/android__v7.x.mdx new file mode 100644 index 0000000000000..3a9fcd2f272d8 --- /dev/null +++ b/platform-includes/enriching-events/scopes/configure-scope/android__v7.x.mdx @@ -0,0 +1,25 @@ +```java {tabTitle: Java} +import io.sentry.Sentry; +import io.sentry.protocol.User; + +Sentry.configureScope(scope -> { + scope.setTag("my-tag", "my value"); + User user = new User(); + user.setId("42"); + user.setEmail("john.doe@example.com"); + scope.setUser(user); +}); +``` + +```kotlin {tabTitle: Kotlin} +import io.sentry.Sentry +import io.sentry.protocol.User + +Sentry.configureScope { scope -> + scope.setTag("my-tag", "my value") + scope.user = User().apply { + id = "42" + email = "john.doe@example.com" + } +} +``` diff --git a/platform-includes/enriching-events/scopes/configure-scope/java__v7.x.mdx b/platform-includes/enriching-events/scopes/configure-scope/java__v7.x.mdx new file mode 100644 index 0000000000000..3a9fcd2f272d8 --- /dev/null +++ b/platform-includes/enriching-events/scopes/configure-scope/java__v7.x.mdx @@ -0,0 +1,25 @@ +```java {tabTitle: Java} +import io.sentry.Sentry; +import io.sentry.protocol.User; + +Sentry.configureScope(scope -> { + scope.setTag("my-tag", "my value"); + User user = new User(); + user.setId("42"); + user.setEmail("john.doe@example.com"); + scope.setUser(user); +}); +``` + +```kotlin {tabTitle: Kotlin} +import io.sentry.Sentry +import io.sentry.protocol.User + +Sentry.configureScope { scope -> + scope.setTag("my-tag", "my value") + scope.user = User().apply { + id = "42" + email = "john.doe@example.com" + } +} +``` diff --git a/platform-includes/enriching-events/scopes/scope-callback-param/java__v7.x.mdx b/platform-includes/enriching-events/scopes/scope-callback-param/java__v7.x.mdx new file mode 100644 index 0000000000000..e7dbe6e8eafd4 --- /dev/null +++ b/platform-includes/enriching-events/scopes/scope-callback-param/java__v7.x.mdx @@ -0,0 +1,27 @@ +```java {tabTitle: Java} +import io.sentry.Sentry; +import io.sentry.SentryLevel; + +// will be tagged with my-tag="my value" +Sentry.captureException(new Exception("my error"), scope -> { + scope.setTag("my-tag", "my value"); + scope.setLevel(SentryLevel.WARNING); +}); + +// will not be tagged with my-tag +Sentry.captureException(new Exception("my error")); +``` + +```kotlin {tabTitle: Kotlin} +import io.sentry.Sentry +import io.sentry.SentryLevel + +// will be tagged with my-tag="my value" +Sentry.captureException(Exception("my error")) { scope -> + scope.setTag("my-tag", "my value") + scope.level = SentryLevel.WARNING +} + +// will not be tagged with my-tag +Sentry.captureException(Exception("my error")) +``` diff --git a/platform-includes/enriching-events/scopes/with-scope/java__v7.x.mdx b/platform-includes/enriching-events/scopes/with-scope/java__v7.x.mdx new file mode 100644 index 0000000000000..d24734122dc8b --- /dev/null +++ b/platform-includes/enriching-events/scopes/with-scope/java__v7.x.mdx @@ -0,0 +1,41 @@ + + +```java {tabTitle: Java} +import io.sentry.Sentry; +import io.sentry.SentryLevel; + +Sentry.withScope(scope -> { + scope.setTag("my-tag", "my value"); + scope.setLevel(SentryLevel.WARNING); + + // will be tagged with my-tag="my value" + Sentry.captureException(new Exception("my error")); +}); + +// will not be tagged with my-tag +Sentry.captureException(new Exception("my error")); +``` + +```kotlin {tabTitle: Kotlin} +import io.sentry.Sentry +import io.sentry.SentryLevel + +Sentry.withScope { scope -> + scope.setTag("my-tag", "my value") + scope.level = SentryLevel.WARNING + + // will be tagged with my-tag="my value" + Sentry.captureException(Exception("my error")) +} + +// will not be tagged with my-tag +Sentry.captureException(Exception("my error")) +``` + + + +In the Java SDK `withScope` does **not** work reliably in `globalHubMode` as the `scope` gets pushed on the stack global to the hub. In `globalHubMode` use the callback parameter of the capture methods detailed below. + + + + diff --git a/platform-includes/enriching-events/unset-user/java__v7.x.mdx b/platform-includes/enriching-events/unset-user/java__v7.x.mdx new file mode 100644 index 0000000000000..6f76599534358 --- /dev/null +++ b/platform-includes/enriching-events/unset-user/java__v7.x.mdx @@ -0,0 +1,15 @@ +```java {tabTitle: Java} +import io.sentry.Sentry; + +Sentry.configureScope(scope -> { + scope.setUser(null); +}); +``` + +```kotlin {tabTitle: Kotlin} +import io.sentry.Sentry + +Sentry.configureScope { scope -> + scope.user = null +} +``` From 1df5df2ad3801961d2f857f559db3e595eacd0c9 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Wed, 22 Jan 2025 10:44:25 +0100 Subject: [PATCH 08/55] fix: Drop unsupported `level="note"` for Alert (#12419) This level does not exist, so this does nothing. --- develop-docs/frontend/upgrade-policies.mdx | 2 +- docs/cli/crons.mdx | 2 +- docs/organization/authentication/sso/okta-sso/okta-scim.mdx | 6 +++--- docs/platforms/javascript/common/tracing/index.mdx | 2 +- .../native/common/enriching-events/attachments/index.mdx | 2 +- .../store-minidumps-as-attachments/index.mdx | 2 +- docs/platforms/unity/enriching-events/attachments/index.mdx | 2 +- docs/platforms/unity/native-support/index.mdx | 2 +- .../unreal/configuration/setup-crashreporter/index.mdx | 2 +- .../store-minidumps-as-attachments/index.mdx | 2 +- .../platforms/unreal/enriching-events/attachments/index.mdx | 2 +- docs/platforms/unreal/index.mdx | 2 +- docs/product/crons/getting-started/index.mdx | 2 +- .../insights/ai/llm-monitoring/getting-started/index.mdx | 2 +- .../releases/setup/release-automation/netlify/index.mdx | 2 +- .../security/security-policy-reporting.mdx | 2 +- includes/opentelemetry-available.mdx | 2 +- 17 files changed, 19 insertions(+), 19 deletions(-) diff --git a/develop-docs/frontend/upgrade-policies.mdx b/develop-docs/frontend/upgrade-policies.mdx index 7bfab521e7833..7cb762a526bfa 100644 --- a/develop-docs/frontend/upgrade-policies.mdx +++ b/develop-docs/frontend/upgrade-policies.mdx @@ -61,7 +61,7 @@ yarn outdated --color | sort yarn upgrade --latest [package-name] [...] ``` - + Don’t forget to upgrade the `@types/[package-name]` package as well if necessary. diff --git a/docs/cli/crons.mdx b/docs/cli/crons.mdx index b49bb88038a5f..f31a1d21e1dc5 100644 --- a/docs/cli/crons.mdx +++ b/docs/cli/crons.mdx @@ -4,7 +4,7 @@ sidebar_order: 200 description: "Follow this guide to set up and manage monitors using the Sentry CLI." --- - + Starting with v2.16.1 of the Sentry CLI, the ability to monitor check-ins using an auth token for authorization has been deprecated. Read on to learn how to update your CLI and use your project's DSN instead. diff --git a/docs/organization/authentication/sso/okta-sso/okta-scim.mdx b/docs/organization/authentication/sso/okta-sso/okta-scim.mdx index 84f0869be24c9..405d9d74455ee 100644 --- a/docs/organization/authentication/sso/okta-sso/okta-scim.mdx +++ b/docs/organization/authentication/sso/okta-sso/okta-scim.mdx @@ -68,7 +68,7 @@ Once these changes have been made, newly assigned users will be sent an invitati You can use "Push Groups" to sync and assign groups in Okta; they'll be mirrored in Sentry teams. - + If you use Okta to assign organization membership, you’ll be unable to make membership changes through Sentry and will need to continue using Okta. To remove these users, deprovision them in Okta. @@ -116,13 +116,13 @@ Here's how to assign an organization-level role to an Okta group: - For security reasons, the "Owner" role cannot be provisioned through SCIM. However, you can deprovision users who have the "Owner" role in Sentry, but aren't provisioned through SCIM. - For self-hosted users with custom roles, this extends to any role with the `org:admin` permission - + If a user is a member of multiple Okta groups, only the attributes set by the first group will be used. - + If you use Okta to assign organization-level roles, you’ll be unable to make membership changes through Sentry and will need to continue using Okta. To change a user's organization-level role, you will need to deprovision and then reprovision them with the new role. diff --git a/docs/platforms/javascript/common/tracing/index.mdx b/docs/platforms/javascript/common/tracing/index.mdx index 2d22db5fd4f21..f470c2150bd73 100644 --- a/docs/platforms/javascript/common/tracing/index.mdx +++ b/docs/platforms/javascript/common/tracing/index.mdx @@ -16,7 +16,7 @@ With [tracing](/product/performance/), Sentry tracks your software performance, - + Sentry can integrate with OpenTelemetry. You can find more information about it here. diff --git a/docs/platforms/native/common/enriching-events/attachments/index.mdx b/docs/platforms/native/common/enriching-events/attachments/index.mdx index 82f84faf101e9..e4a236e0c4170 100644 --- a/docs/platforms/native/common/enriching-events/attachments/index.mdx +++ b/docs/platforms/native/common/enriching-events/attachments/index.mdx @@ -41,7 +41,7 @@ By default, access is granted to all members when storage is enabled. If a membe -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unity/data-management/store-minidumps-as-attachments/index.mdx b/docs/platforms/unity/data-management/store-minidumps-as-attachments/index.mdx index b821cb4a47ffd..05a0db81eb930 100644 --- a/docs/platforms/unity/data-management/store-minidumps-as-attachments/index.mdx +++ b/docs/platforms/unity/data-management/store-minidumps-as-attachments/index.mdx @@ -6,6 +6,6 @@ sidebar_order: 90 -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unity/enriching-events/attachments/index.mdx b/docs/platforms/unity/enriching-events/attachments/index.mdx index 343bb29c1d3aa..71967868352a1 100644 --- a/docs/platforms/unity/enriching-events/attachments/index.mdx +++ b/docs/platforms/unity/enriching-events/attachments/index.mdx @@ -75,7 +75,7 @@ By default, access is granted to all members when storage is enabled. If a membe -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unity/native-support/index.mdx b/docs/platforms/unity/native-support/index.mdx index 18afc60a5a610..a289ffe0be9d5 100644 --- a/docs/platforms/unity/native-support/index.mdx +++ b/docs/platforms/unity/native-support/index.mdx @@ -79,6 +79,6 @@ sentry-cli --auth-token ___ORG_AUTH_TOKEN___ debug-files upload --org ___ORG_SLU -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unreal/configuration/setup-crashreporter/index.mdx b/docs/platforms/unreal/configuration/setup-crashreporter/index.mdx index da2479a577d7e..032df5663a244 100644 --- a/docs/platforms/unreal/configuration/setup-crashreporter/index.mdx +++ b/docs/platforms/unreal/configuration/setup-crashreporter/index.mdx @@ -179,6 +179,6 @@ Check out this community-generated [thread in Sentry's forum](https://forum.sent -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unreal/data-management/store-minidumps-as-attachments/index.mdx b/docs/platforms/unreal/data-management/store-minidumps-as-attachments/index.mdx index 6f1275c4c8414..ed5b9dd274b78 100644 --- a/docs/platforms/unreal/data-management/store-minidumps-as-attachments/index.mdx +++ b/docs/platforms/unreal/data-management/store-minidumps-as-attachments/index.mdx @@ -7,6 +7,6 @@ sidebar_order: 90 -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unreal/enriching-events/attachments/index.mdx b/docs/platforms/unreal/enriching-events/attachments/index.mdx index 45e64049a54c6..a47931c240729 100644 --- a/docs/platforms/unreal/enriching-events/attachments/index.mdx +++ b/docs/platforms/unreal/enriching-events/attachments/index.mdx @@ -116,7 +116,7 @@ By default, access is granted to all members when storage is enabled. If a membe -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/platforms/unreal/index.mdx b/docs/platforms/unreal/index.mdx index 0a9546f0c3a07..682b6047c0f5c 100644 --- a/docs/platforms/unreal/index.mdx +++ b/docs/platforms/unreal/index.mdx @@ -168,6 +168,6 @@ To view and resolve the recorded error, log into [sentry.io](https://sentry.io) -☝ This feature is supported on Windows, Linux, and Android. +☝ This feature is supported on Windows, Linux, and Android. diff --git a/docs/product/crons/getting-started/index.mdx b/docs/product/crons/getting-started/index.mdx index 61457dd9a077a..d44c8c6413cc6 100644 --- a/docs/product/crons/getting-started/index.mdx +++ b/docs/product/crons/getting-started/index.mdx @@ -23,7 +23,7 @@ To set up Sentry Crons, use the links below for supported SDKs or the Sentry CLI - [Ruby](/platforms/ruby/crons/) - [Elixir](/platforms/elixir/crons/) - + We're working on enabling additional platforms for Crons. In the meantime, you can use the Sentry CLI or HTTP to set up monitoring for your jobs. diff --git a/docs/product/insights/ai/llm-monitoring/getting-started/index.mdx b/docs/product/insights/ai/llm-monitoring/getting-started/index.mdx index 78979941355e8..47e85ae5817e6 100644 --- a/docs/product/insights/ai/llm-monitoring/getting-started/index.mdx +++ b/docs/product/insights/ai/llm-monitoring/getting-started/index.mdx @@ -25,7 +25,7 @@ To start sending LLM data to Sentry, make sure you've created a Sentry project f - [Huggingface Hub](/platforms/python/integrations/huggingface_hub/) - [Cohere](/platforms/python/integrations/cohere/) - + We'll be adding AI integrations continuously. You can also instrument AI manually with the Sentry Python SDK. diff --git a/docs/product/releases/setup/release-automation/netlify/index.mdx b/docs/product/releases/setup/release-automation/netlify/index.mdx index 0edadb156813a..f64b01984847f 100644 --- a/docs/product/releases/setup/release-automation/netlify/index.mdx +++ b/docs/product/releases/setup/release-automation/netlify/index.mdx @@ -15,7 +15,7 @@ Full docs are available in the [plugin's README](https://github.com/getsentry/se For more details about Sentry release management concepts, see our docs on [releases](/product/releases/). - + Note: This build plugin is separate from `@netlify/sentry`, which is a monitoring plugin built by Netlify. Docs for that plugin can be found [here](https://docs.netlify.com/netlify-labs/experimental-features/sentry-integration/). For more information, see [`@sentry/netlify-build-plugin` vs. `@netlify/sentry`](https://github.com/getsentry/sentry-netlify-build-plugin#sentrynetlify-build-plugin-vs-netlifysentry). diff --git a/docs/security-legal-pii/security/security-policy-reporting.mdx b/docs/security-legal-pii/security/security-policy-reporting.mdx index b9a2e63d39639..3a040edd1d51e 100644 --- a/docs/security-legal-pii/security/security-policy-reporting.mdx +++ b/docs/security-legal-pii/security/security-policy-reporting.mdx @@ -23,7 +23,7 @@ Content-Security-Policy: ...; Report-To: {"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"https://___ORG_INGEST_DOMAIN___/api/___PROJECT_ID___/security/?sentry_key=___PUBLIC_KEY___"}],"include_subdomains":true} ``` - + Though the `report-to` directive is intended to replace the deprecated `report-uri` directive, `report-to` isn't supported in most browsers yet. So for compatibility with current browsers while also adding forward compatibility when browsers get `report-to` support, you can specify both `report-uri` and `report-to` in your Content-Security-Policy (CSP). diff --git a/includes/opentelemetry-available.mdx b/includes/opentelemetry-available.mdx index ad2342a19478d..997e2d820dd6d 100644 --- a/includes/opentelemetry-available.mdx +++ b/includes/opentelemetry-available.mdx @@ -1,4 +1,4 @@ - + Sentry can integrate with OpenTelemetry. You can find more information about it here. From 0fc63b7fefe2cef89866097dbec37f30b87853b7 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Wed, 22 Jan 2025 11:12:07 +0100 Subject: [PATCH 09/55] feat: Drop `success` and `danger` Alert levels (#12418) We do not use success at all, and danger only in few places, where we can also use `warning` instead. --- docs/contributing/pages/components.mdx | 2 +- .../common/best-practices/shared-environments.mdx | 4 ++-- .../javascript/common/session-replay/index.mdx | 2 +- .../common/sourcemaps/uploading/esbuild.mdx | 2 +- .../javascript/guides/nextjs/manual-setup.mdx | 2 +- includes/metrics-api-change.mdx | 2 +- src/components/alert/index.tsx | 2 +- src/components/alert/styles.scss | 15 +-------------- 8 files changed, 9 insertions(+), 22 deletions(-) diff --git a/docs/contributing/pages/components.mdx b/docs/contributing/pages/components.mdx index bed2e3289b9f1..898ef7996094e 100644 --- a/docs/contributing/pages/components.mdx +++ b/docs/contributing/pages/components.mdx @@ -25,7 +25,7 @@ This is an alert Attributes: - `title` (string) -- `level` (string: `'info' | 'warning' | 'danger' | 'success'`) +- `level` (string: `'info' | 'warning'`) Use this for these types of content: diff --git a/docs/platforms/javascript/common/best-practices/shared-environments.mdx b/docs/platforms/javascript/common/best-practices/shared-environments.mdx index 064d7dfb7be66..9180a170894fa 100644 --- a/docs/platforms/javascript/common/best-practices/shared-environments.mdx +++ b/docs/platforms/javascript/common/best-practices/shared-environments.mdx @@ -39,7 +39,7 @@ These best practices are relevant for you if you set up Sentry in one of the fol - Libraries - Any other scenario where you might have multiple Sentry instances running in the same environment - + When setting up Sentry in a shared environment where multiple Sentry instances may run, you should **not use `Sentry.init()`**, as this will pollute the global state. If your browser extension uses `Sentry.init()`, and a website also uses Sentry, the extension may send events to the website's Sentry project, or vice versa. @@ -121,7 +121,7 @@ Sentry.init({ }); ``` - + You shouldn't use this option if you're in fact using the SDK in a browser extension or another shared environment. Initializing the SDK via `Sentry.init` has no advantages over manually setting up the client and scope as described on this page. diff --git a/docs/platforms/javascript/common/session-replay/index.mdx b/docs/platforms/javascript/common/session-replay/index.mdx index 78202a8b41026..d2ab9693c85a2 100644 --- a/docs/platforms/javascript/common/session-replay/index.mdx +++ b/docs/platforms/javascript/common/session-replay/index.mdx @@ -27,7 +27,7 @@ description: "Learn how to enable Session Replay in your app if it is not alread By default, our Session Replay SDK masks all DOM text content, images, and user input, giving you heightened confidence that no sensitive data will leave the browser. To learn more, see Session Replay Privacy. - + Angular's default "Change Detection" strategy monkeypatches browser globals and can break or cause performance regressions in your application when using Session Replay. To avoid this, we recommend you use the `OnPush` strategy when using Angular. diff --git a/docs/platforms/javascript/common/sourcemaps/uploading/esbuild.mdx b/docs/platforms/javascript/common/sourcemaps/uploading/esbuild.mdx index d489247a1a80b..f799160362ab3 100644 --- a/docs/platforms/javascript/common/sourcemaps/uploading/esbuild.mdx +++ b/docs/platforms/javascript/common/sourcemaps/uploading/esbuild.mdx @@ -21,7 +21,7 @@ This guide assumes you're using a Sentry **SDK version `7.47.0` or higher**. If "javascript.cordova", ]}> - + The Sentry esbuild plugin doesn't fully support esbuild configurations with `splitting: true`. If you rely on code splitting, use the esbuild plugin with legacy source maps upload diff --git a/docs/platforms/javascript/guides/nextjs/manual-setup.mdx b/docs/platforms/javascript/guides/nextjs/manual-setup.mdx index 1967781879aca..7b6877e9924c8 100644 --- a/docs/platforms/javascript/guides/nextjs/manual-setup.mdx +++ b/docs/platforms/javascript/guides/nextjs/manual-setup.mdx @@ -442,7 +442,7 @@ module.exports = withSentryConfig(nextConfig, { Alternatively, you can set the `SENTRY_AUTH_TOKEN` environment variable: - + Do not commit your auth token to version control. diff --git a/includes/metrics-api-change.mdx b/includes/metrics-api-change.mdx index 7ef8367c07071..08b9e81790e54 100644 --- a/includes/metrics-api-change.mdx +++ b/includes/metrics-api-change.mdx @@ -1,3 +1,3 @@ - + Thank you for participating in our Metrics beta program. After careful consideration, we have ended the beta program and retired the current Metrics solution. We're actively developing a new solution that will make tracking and debugging any issues in your application easier. [Learn more](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Upcoming-API-Changes-to-Metrics). diff --git a/src/components/alert/index.tsx b/src/components/alert/index.tsx index 550cbaba70b13..99de24e07ce2f 100644 --- a/src/components/alert/index.tsx +++ b/src/components/alert/index.tsx @@ -6,7 +6,7 @@ import './styles.scss'; type AlertProps = { children?: ReactNode; - level?: 'info' | 'warning' | 'danger' | 'success' | ''; + level?: 'info' | 'warning'; title?: string; }; diff --git a/src/components/alert/styles.scss b/src/components/alert/styles.scss index 02dd702abf406..a596c47c4cded 100644 --- a/src/components/alert/styles.scss +++ b/src/components/alert/styles.scss @@ -1,5 +1,4 @@ -.alert, -.note { +.alert { background: var(--accent-2); border-color: var(--accent-12); border-left: 3px solid var(--accent-12); @@ -52,15 +51,3 @@ border-color: var(--amber-10); color: var(--amber-12); } - -.alert-danger { - background: var(--red-2); - border-color: var(--red-10); - color: var(--red-12); -} - -.alert-success { - background: var(--green-2); - border-color: var(--green-10); - color: var(--green-12); -} From d9758044db822c1da471ea4c6f192c34d7964356 Mon Sep 17 00:00:00 2001 From: Priscila Oliveira Date: Wed, 22 Jan 2025 11:35:22 +0100 Subject: [PATCH 10/55] ref(store-minidumps): Add link to the word 'Minidump' (#12423) --- includes/store-minidumps-as-attachments-intro.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/store-minidumps-as-attachments-intro.mdx b/includes/store-minidumps-as-attachments-intro.mdx index bb192b35f59b0..08c645f74e612 100644 --- a/includes/store-minidumps-as-attachments-intro.mdx +++ b/includes/store-minidumps-as-attachments-intro.mdx @@ -1,3 +1,3 @@ -Minidumps may contain sensitive information about the target system, such as environment variables, local pathnames, or in-memory representations of input fields, including passwords. By default, Sentry only uses minidump files to create events and immediately drops them. All sensitive information is stripped from the resulting events. +[Minidumps](/platforms/native/guides/minidumps/#what-is-a-minidump) may contain sensitive information about the target system, such as environment variables, local pathnames, or in-memory representations of input fields, including passwords. By default, Sentry only uses minidump files to create events and immediately drops them. All sensitive information is stripped from the resulting events. All other types of attachments, such as log files or screenshots, are stored for 30 days when sent to Sentry. Note that Sentry does not apply data scrubbing to attachments. From c0cbf4053432353a038c03c3123c16260c179866 Mon Sep 17 00:00:00 2001 From: Francesco Gringl-Novy Date: Wed, 22 Jan 2025 11:48:54 +0100 Subject: [PATCH 11/55] feat: Drop unnecessary default `info` level for Alert (#12420) --- app/platform-redirect/page.tsx | 2 +- .../dynamic-sampling/architecture.mdx | 2 +- .../dynamic-sampling/fidelity-and-biases.mdx | 22 +++++++++---------- .../dynamic-sampling/the-big-picture.mdx | 10 ++++----- .../multi-region-deployment/control-silo.mdx | 2 +- .../application-architecture/overview.mdx | 2 +- develop-docs/backend/api/design.mdx | 4 ++-- develop-docs/backend/api/public.mdx | 2 +- .../feature-flags/flagpole.mdx | 2 +- .../backend/application-domains/options.mdx | 6 ++--- .../environment/index.mdx | 4 ++-- .../development-infrastructure/testing.mdx | 2 +- develop-docs/frontend/component-library.mdx | 2 +- develop-docs/frontend/design-tenets.mdx | 6 ++--- develop-docs/frontend/index.mdx | 4 ++-- develop-docs/frontend/upgrade-policies.mdx | 2 +- .../frontend/using-styled-components.mdx | 2 +- .../ingestion/relay/relay-best-practices.mdx | 2 +- .../relay/transaction-span-ratelimits.mdx | 2 +- .../integrations/azuredevops/index.mdx | 2 +- develop-docs/integrations/discord/index.mdx | 2 +- develop-docs/integrations/github.mdx | 4 ++-- develop-docs/integrations/msteams/index.mdx | 4 ++-- develop-docs/integrations/pagerduty.mdx | 2 +- develop-docs/integrations/slack/index.mdx | 8 +++---- develop-docs/sdk/data-model/envelopes.mdx | 6 ++--- .../data-model/event-payloads/breadcrumbs.mdx | 2 +- .../sdk/data-model/event-payloads/index.mdx | 2 +- .../data-model/event-payloads/transaction.mdx | 2 +- .../expected-features/setup-wizards/index.mdx | 4 ++-- .../hub_and_scope_refactoring.mdx | 4 ++-- .../sdk/miscellaneous/unified-api/index.mdx | 2 +- develop-docs/sdk/overview.mdx | 6 ++--- .../telemetry/profiles/sample-format-v1.mdx | 6 ++--- develop-docs/sdk/telemetry/scopes.mdx | 2 +- develop-docs/sdk/telemetry/sessions/index.mdx | 2 +- .../sdk/telemetry/spans/filtering.mdx | 2 +- develop-docs/sdk/telemetry/spans/sampling.mdx | 2 +- .../sdk/telemetry/spans/scrubbing-data.mdx | 2 +- .../traces/dynamic-sampling-context.mdx | 2 +- develop-docs/sdk/telemetry/traces/index.mdx | 4 ++-- .../sdk/telemetry/traces/span-operations.mdx | 2 +- develop-docs/self-hosted/backup.mdx | 4 ++-- develop-docs/self-hosted/custom-ca-roots.mdx | 2 +- develop-docs/self-hosted/email.mdx | 2 +- .../experimental/external-storage.mdx | 2 +- develop-docs/self-hosted/index.mdx | 4 ++-- develop-docs/self-hosted/releases.mdx | 2 +- develop-docs/self-hosted/sso.mdx | 6 ++--- develop-docs/self-hosted/support.mdx | 2 +- .../self-hosted/troubleshooting/kafka.mdx | 2 +- docs/contributing/pages/components.mdx | 12 ++++------ .../organization/authentication/sso/index.mdx | 2 +- .../issue-tracking/jira/index.mdx | 18 +++++++-------- .../source-code-mgmt/azure-devops/index.mdx | 16 +++++++------- .../debug-files/symbol-servers/index.mdx | 2 +- .../android/enriching-events/scopes/index.mdx | 2 +- .../enriching-events/scopes/index__v7.x.mdx | 2 +- .../debug-files/symbol-servers/index.mdx | 2 +- .../common/enriching-events/scopes/index.mdx | 2 +- .../apple/common/migration/index.mdx | 2 +- .../dart/enriching-events/scopes/index.mdx | 2 +- .../dotnet/common/configuration/msbuild.mdx | 4 ++-- .../debug-files/symbol-servers/index.mdx | 2 +- .../common/enriching-events/scopes/index.mdx | 2 +- docs/platforms/dotnet/common/index.mdx | 2 +- .../elixir/integrations/oban/index.mdx | 2 +- .../debug-files/symbol-servers/index.mdx | 2 +- .../flutter/enriching-events/scopes/index.mdx | 2 +- .../common/enriching-events/scopes/index.mdx | 2 +- .../enriching-events/scopes/index__v7.x.mdx | 2 +- .../tracing/instrumentation/apollo3.mdx | 2 +- .../guides/spring-boot/logging-frameworks.mdx | 2 +- .../application-not-responding.mdx | 2 +- .../configuration/integrations/amqplib.mdx | 2 +- .../common/configuration/integrations/anr.mdx | 2 +- .../integrations/breadcrumbs.mdx | 2 +- .../integrations/browserapierrors.mdx | 2 +- .../integrations/browserprofiling.mdx | 2 +- .../integrations/browsersession.mdx | 4 ++-- .../integrations/browsertracing.mdx | 2 +- .../configuration/integrations/bunserver.mdx | 2 +- .../integrations/childProcess.mdx | 2 +- .../configuration/integrations/connect.mdx | 2 +- .../configuration/integrations/console.mdx | 2 +- .../configuration/integrations/dataloader.mdx | 2 +- .../integrations/denocontext.mdx | 2 +- .../configuration/integrations/denocron.mdx | 2 +- .../configuration/integrations/fastify.mdx | 2 +- .../integrations/featureflags.mdx | 2 +- .../common/configuration/integrations/fs.mdx | 2 +- .../integrations/genericpool.mdx | 2 +- .../integrations/globalhandlers.mdx | 2 +- .../configuration/integrations/graphql.mdx | 2 +- .../configuration/integrations/hapi.mdx | 2 +- .../configuration/integrations/http.mdx | 2 +- .../configuration/integrations/httpclient.mdx | 2 +- .../integrations/httpcontext.mdx | 2 +- .../configuration/integrations/kafka.mdx | 2 +- .../configuration/integrations/knex.mdx | 2 +- .../common/configuration/integrations/koa.mdx | 2 +- .../integrations/launchdarkly.mdx | 2 +- .../integrations/localvariables.mdx | 2 +- .../integrations/lrumemoizer.mdx | 2 +- .../integrations/modulemetadata.mdx | 2 +- .../configuration/integrations/modules.mdx | 2 +- .../configuration/integrations/mongo.mdx | 2 +- .../configuration/integrations/mongoose.mdx | 2 +- .../configuration/integrations/mysql.mdx | 2 +- .../configuration/integrations/mysql2.mdx | 2 +- .../configuration/integrations/nest.mdx | 2 +- .../integrations/nodecontext.mdx | 2 +- .../configuration/integrations/nodefetch.mdx | 2 +- .../integrations/nodeprofiling.mdx | 2 +- .../integrations/normalizepath.mdx | 2 +- .../integrations/onuncaughtexception.mdx | 2 +- .../integrations/openfeature.mdx | 2 +- .../configuration/integrations/postgres.mdx | 2 +- .../configuration/integrations/prisma.mdx | 2 +- .../integrations/processThreadsBreadcrumb.mdx | 2 +- .../configuration/integrations/redis.mdx | 2 +- .../configuration/integrations/replay.mdx | 2 +- .../integrations/replaycanvas.mdx | 2 +- .../integrations/reportingobserver.mdx | 2 +- .../integrations/requestdata.mdx | 2 +- .../configuration/integrations/tedious.mdx | 2 +- .../configuration/integrations/trpc.mdx | 2 +- .../integrations/unhandledrejection.mdx | 2 +- .../configuration/integrations/vercelai.mdx | 2 +- .../common/configuration/integrations/vue.mdx | 3 +-- .../integrations/wintercgfetch.mdx | 2 +- .../javascript/common/crons/index.mdx | 2 +- .../debug-files/symbol-servers/index.mdx | 2 +- docs/platforms/javascript/common/index.mdx | 2 +- .../common/opentelemetry/custom-setup.mdx | 2 +- .../tracing/trace-propagation/index.mdx | 2 +- .../application-not-responding.mdx | 2 +- .../javascript/guides/nuxt/manual-setup.mdx | 2 +- .../react/features/react-router/index.mdx | 4 ++-- .../guides/react/features/react-router/v6.mdx | 4 ++-- .../guides/react/features/react-router/v7.mdx | 2 +- .../guides/react/features/tanstack-router.mdx | 2 +- .../javascript/legacy-sdk/integrations.mdx | 2 +- .../enriching-events/scopes/index.mdx | 2 +- .../native/common/configuration/sampling.mdx | 2 +- .../debug-files/symbol-servers/index.mdx | 2 +- .../php/guides/laravel/usage/index.mdx | 2 +- docs/platforms/php/legacy-sdk/usage.mdx | 2 +- .../enriching-events/scopes/index.mdx | 2 +- .../python/integrations/anthropic/index.mdx | 2 +- .../manual-instrumentation/index.mdx | 2 +- .../python/integrations/celery/index.mdx | 2 +- .../python/integrations/cohere/index.mdx | 2 +- .../python/integrations/django/index.mdx | 2 +- .../python/integrations/dramatiq/index.mdx | 2 +- .../python/integrations/fastapi/index.mdx | 2 +- .../python/integrations/flask/index.mdx | 2 +- .../integrations/gcp-functions/index.mdx | 2 +- .../integrations/huggingface_hub/index.mdx | 2 +- .../python/integrations/langchain/index.mdx | 2 +- .../python/integrations/logging/index.mdx | 2 +- .../python/integrations/openai/index.mdx | 2 +- .../python/integrations/starlette/index.mdx | 2 +- .../python/integrations/sys_exit/index.mdx | 2 +- .../custom-instrumentation/index.mdx | 14 ++++++------ .../rust/common/configuration/sampling.mdx | 4 ++-- .../debug-files/symbol-servers/index.mdx | 2 +- .../unity/enriching-events/scopes/index.mdx | 2 +- .../unreal/configuration/options.mdx | 4 ++-- .../unreal/configuration/sampling.mdx | 2 +- .../debug-files/symbol-servers/index.mdx | 2 +- .../unreal/enriching-events/scopes/index.mdx | 2 +- docs/platforms/unreal/tracing/index.mdx | 2 +- .../legacy-manage-transaction-quota.mdx | 2 +- .../quotas/manage-transaction-quota.mdx | 2 +- .../uptime-monitoring/automatic-detection.mdx | 2 +- .../crons/getting-started/http/index.mdx | 2 +- .../crons/legacy-endpoint-migration.mdx | 2 +- docs/product/dev-toolbar/index.mdx | 2 +- docs/product/dev-toolbar/setup.mdx | 2 +- docs/product/explore/feature-flags/index.mdx | 2 +- docs/product/issues/issue-details/index.mdx | 2 +- docs/product/issues/ownership-rules/index.mdx | 2 +- docs/product/relay/getting-started.mdx | 4 ++-- docs/product/relay/modes/index.mdx | 4 ++-- docs/product/relay/operating-guidelines.mdx | 2 +- docs/product/releases/health/index.mdx | 2 +- .../scrubbing/advanced-datascrubbing.mdx | 2 +- .../configuration/integrations/redux.mdx | 2 +- .../alert-using-a-framework/_default.mdx | 2 +- .../configuration/before-send-hint/native.mdx | 2 +- .../config-intro/dotnet.aspnetcore.mdx | 2 +- .../scopes/with-isolation-scope/java.mdx | 2 +- .../scopes/with-scope/java.mdx | 2 +- .../scopes/with-scope/java__v7.x.mdx | 2 +- .../prerelease-alert/_default.mdx | 2 +- .../javascript.nextjs.mdx | 2 +- .../sampling-function-intro/unreal.mdx | 2 +- src/components/relayMetrics/index.tsx | 2 +- 199 files changed, 270 insertions(+), 275 deletions(-) diff --git a/app/platform-redirect/page.tsx b/app/platform-redirect/page.tsx index 0183bb96b70e0..3cfd54088e637 100644 --- a/app/platform-redirect/page.tsx +++ b/app/platform-redirect/page.tsx @@ -79,7 +79,7 @@ export default async function Page(props: { return ( - {platformInfo} + {platformInfo}