Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
406 changes: 406 additions & 0 deletions .github/workflows/lint-404s-full.yml

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions docs/platforms/apple/common/configuration/options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,7 @@ This feature requires that tracing is enabled via <PlatformIdentifier name="trac

Screenshot options allow you to configure how screenshots are captured and masked when attached to error events. These options are available under `options.screenshot`.

Learn more about screenshot options in the <PlatformLink to="/guides/ios/enriching-events/screenshots/">Screenshots documentation</PlatformLink>.
Learn more about screenshot options in the [Screenshots documentation](/platforms/apple/guides/ios/enriching-events/screenshots/).

<SdkOption name="screenshot.maskAllText" type="bool" defaultValue="true">

Expand Down Expand Up @@ -880,15 +880,15 @@ Learn more in the <PlatformLink to="/session-replay/">Session Replay documentati

When enabled, all text in the app is masked during session replay by drawing a black rectangle over it.

Learn more in the <PlatformLink to="/session-replay/customredact/">Using Custom Masking for Session Replay</PlatformLink> documentation.
Learn more in the <PlatformLink to="/session-replay/customredact/" fallbackPlatform="apple">Using Custom Masking for Session Replay</PlatformLink> documentation.

</SdkOption>

<SdkOption name="sessionReplay.maskAllImages" type="bool" defaultValue="true">

When enabled, all non-bundled images in the app are masked during session replay by drawing a black rectangle over them.

Learn more in the <PlatformLink to="/session-replay/customredact/">Using Custom Masking for Session Replay</PlatformLink> documentation.
Learn more in the <PlatformLink to="/session-replay/customredact/" fallbackPlatform="apple">Using Custom Masking for Session Replay</PlatformLink> documentation.

</SdkOption>

Expand All @@ -902,15 +902,15 @@ The quality of the session replay video. Higher quality increases CPU and bandwi

A list of custom `UIView` subclasses that should be masked during session replay. Every child of a masked view is also masked.

Learn more in the <PlatformLink to="/session-replay/customredact/">Using Custom Masking for Session Replay</PlatformLink> documentation.
Learn more in the <PlatformLink to="/session-replay/customredact/" fallbackPlatform="apple">Using Custom Masking for Session Replay</PlatformLink> documentation.

</SdkOption>

<SdkOption name="sessionReplay.unmaskedViewClasses" type="array" defaultValue="[]">

A list of custom `UIView` subclasses to be ignored during the masking step of session replay. Views of these classes are not masked, but their children may be. This property takes precedence over `maskedViewClasses`.

Learn more in the <PlatformLink to="/session-replay/customredact/">Using Custom Masking for Session Replay</PlatformLink> documentation.
Learn more in the <PlatformLink to="/session-replay/customredact/" fallbackPlatform="apple">Using Custom Masking for Session Replay</PlatformLink> documentation.

</SdkOption>

Expand Down Expand Up @@ -950,7 +950,7 @@ We discourage using this option as it can result in incomplete or missing views

</Alert>

Learn more about session replay performance in the <PlatformLink to="/session-replay/performance-overhead/">Performance Overhead</PlatformLink> documentation.
Learn more about session replay performance in the <PlatformLink to="/session-replay/performance-overhead/" fallbackPlatform="apple">Performance Overhead</PlatformLink> documentation.

</SdkOption>

Expand Down Expand Up @@ -1037,7 +1037,7 @@ When enabled, the profiler starts as early as possible during the app lifecycle,

If `lifecycle` is `manual`, profiling starts automatically on startup but you must call `SentrySDK.stopProfiler()` when your app startup is complete. If `lifecycle` is `trace`, profiling starts automatically on startup and stops when the root span associated with app startup ends.

Learn more about profiling in the <PlatformLink to="/profiling/">Profiling documentation</PlatformLink>.
Learn more about profiling in the <PlatformLink to="/profiling/" fallbackPlatform="apple">Profiling documentation</PlatformLink>.

</SdkOption>

Expand Down Expand Up @@ -1309,7 +1309,7 @@ SentrySDK.start { options in

When enabled, the SDK can capture request and response headers and bodies for network requests during session replay. You must also configure `options.sessionReplay.networkDetailAllowUrls` to specify which requests are captured.

Learn more in the <PlatformLink to="/session-replay/configuration/#network-details">Network Details</PlatformLink> documentation.
Learn more in the <PlatformLink to="/session-replay/configuration/#network-details" fallbackPlatform="apple">Network Details</PlatformLink> documentation.

</SdkOption>

Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/java/common/configuration/options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ Set this boolean to `false` to disable tracing for `OPTIONS` requests. This opti

<SdkOption name="enableCacheTracing" type="boolean" defaultValue="false">

Whether cache operations (`get`, `put`, `remove`, `flush`) should be traced. When enabled, the SDK creates spans for cache operations performed through the <PlatformLink to="/integrations/jcache/">JCache integration</PlatformLink> or Spring Cache (e.g. `@Cacheable`, `@CachePut`, `@CacheEvict`).
Whether cache operations (`get`, `put`, `remove`, `flush`) should be traced. When enabled, the SDK creates spans for cache operations performed through the <PlatformLink to="/integrations/jcache/" fallbackPlatform="java">JCache integration</PlatformLink> or Spring Cache (e.g. `@Cacheable`, `@CachePut`, `@CacheEvict`).

</SdkOption>

Expand Down
31 changes: 29 additions & 2 deletions docs/platforms/javascript/common/agent-tracing/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,17 @@ Pick your AI stack. Some libraries auto-instrument; others need a short setup
title: "Agents SDK",
icon: "cloudflare",
},
{ to: "/agent-tracing/vercelai/", title: "Vercel AI SDK", icon: "vercel" },
{
to: "/agent-tracing/vercelai/",
title: "Vercel AI SDK",
icon: "vercel",
notSupported: [
"javascript.effect",
"javascript.elysia",
"javascript.firebase",
"javascript.nitro",
],
},
{
to: "/agent-tracing/openai/",
title: "OpenAI",
Expand Down Expand Up @@ -249,14 +259,31 @@ export default Sentry.withSentry(

## Manual Instrumentation

You can also instrument agent spans yourself. See <PlatformLink to="/agent-tracing/manual-instrumentation/">manual instrumentation</PlatformLink>.
<PlatformSection
notSupported={[
"javascript.effect",
"javascript.electron",
"javascript.elysia",
"javascript.firebase",
"javascript.react-router",
]}
>
You can also instrument agent spans yourself. See{" "}
<PlatformLink to="/agent-tracing/manual-instrumentation/">
manual instrumentation
</PlatformLink>
.
</PlatformSection>

<PlatformSection notSupported={["javascript.effect", "javascript.electron", "javascript.elysia", "javascript.firebase", "javascript.nitro", "javascript.react-router"]}>
## MCP Server Monitoring

If you're building MCP (Model Context Protocol) servers, Sentry can also track tool executions, prompt retrievals, and resource access. See <PlatformLink to="/mcp-monitoring/">MCP Monitoring</PlatformLink> for setup instructions.

</PlatformSection>

</PlatformSection>

<PlatformSection notSupported={["javascript.node", "javascript.aws-lambda", "javascript.azure-functions", "javascript.bun", "javascript.cloudflare", "javascript.connect", "javascript.deno", "javascript.effect", "javascript.electron", "javascript.elysia", "javascript.express", "javascript.fastify", "javascript.firebase", "javascript.gcp-functions", "javascript.hapi", "javascript.hono", "javascript.koa", "javascript.nestjs", "javascript.nitro", "javascript.astro", "javascript.nextjs", "javascript.nuxt", "javascript.react-router", "javascript.remix", "javascript.solidstart", "javascript.sveltekit", "javascript.tanstackstart-react"]}>

## Prerequisites
Expand Down
12 changes: 6 additions & 6 deletions docs/platforms/javascript/common/configuration/apis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ Sentry.withScope((scope) => {

There can only be a single `beforeSend` / `beforeSendTransaction` / `beforeSendSpan` callback, but you can add multiple event processors via `addEventProcessor()`.

If you're using <PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink>, use `beforeSendSpan`, since event processors are not applied to spans.
If you're using <PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink>, use `beforeSendSpan`, since event processors are not applied to spans.

</Expandable>
</SdkApi>
Expand Down Expand Up @@ -488,7 +488,7 @@ Sentry.setContext("character", {

<PlatformCategorySection supported={["server"]}>
<Expandable title="Setting The User For the Current Request ">
<PlatformSection notSupported={['javascript.bun', 'javascript.cloudflare', 'javascript.deno', 'javascript.react-router', 'javascript.aws-lambda', 'javascript.azure-functions', 'javascript.gcp-functions']}>
<PlatformSection notSupported={['javascript.bun', 'javascript.cloudflare', 'javascript.deno', 'javascript.effect', 'javascript.elysia', 'javascript.firebase', 'javascript.react-router', 'javascript.aws-lambda', 'javascript.azure-functions', 'javascript.gcp-functions']}>
`Sentry.setUser()` will set the user for the currently active request - see <PlatformLink to="/enriching-events/request-isolation">Request Isolation</PlatformLink> for more information. For example, if you want to set the user for a single request, you can do this like this:
</PlatformSection>
<PlatformContent includePath="enriching-events/set-user-request" />
Expand Down Expand Up @@ -812,7 +812,7 @@ availableSince="10.13.0"
>

Signals to the Sentry SDK that the initial page was fully loaded.
Requires the <PlatformLink to="/tracing/instrumentation/automatic-instrumentation/#enableReportPageLoaded">`enableReportPageLoaded` option</PlatformLink> in `browserTracingIntegration` to
Requires the <PlatformLink to="/tracing/instrumentation/automatic-instrumentation/#enableReportPageLoaded" fallbackPlatform="javascript">`enableReportPageLoaded` option</PlatformLink> in `browserTracingIntegration` to
be set to `true`. Once called, the SDK ends the pageload span automatically,

By default, the SDK takes care of ending the pageload span automatically, based on
Expand All @@ -821,7 +821,7 @@ You can alternatively use explicit pageload reporting if the inactivity heuristi
`browserTracingIntegration` don't work well for your use case.
However, you must ensure that you call `reportPageLoaded` in every situation.
If `reportPageLoaded` is not called, the pageload span will be ended after 30 seconds
or whatever custom value is set on the <PlatformLink to="/tracing/instrumentation/automatic-instrumentation/#enableReportPageLoaded">`finalTimeout` option</PlatformLink>.
or whatever custom value is set on the <PlatformLink to="/tracing/instrumentation/automatic-instrumentation/#enableReportPageLoaded" fallbackPlatform="javascript">`finalTimeout` option</PlatformLink>.


<Expandable title="Examples">
Expand All @@ -844,7 +844,7 @@ These utilities can be used for more advanced tracing use cases.

<SdkApi name="spanToJSON" signature="function spanToJSON(span: Span): SpanJSON">
Convert a span to a JSON object. If you're using{" "}
<PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink>, we
<PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink>, we
recommend using [`spanToStreamedSpanJSON`](#spanToStreamedSpanJSON) instead.
</SdkApi>

Expand All @@ -853,7 +853,7 @@ These utilities can be used for more advanced tracing use cases.
signature="function spanToStreamedSpanJSON(span: Span): StreamedSpanJSON"
>
Convert a span to a JSON object. Only available in{" "}
<PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink>.
<PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink>.
</SdkApi>

<SdkApi
Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/common/configuration/filtering.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ This is the case because the Sentry Loader Script and CDN Bundles are detected a

<Alert>
The options in this section are only available in transaction mode. If you're
using <PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink>, go to
using <PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink>, go to
[Filtering Spans](#filtering-spans).
</Alert>

Expand Down Expand Up @@ -155,7 +155,7 @@ If you want to drop the transaction/service span, including its child spans:

<Alert>

If you're using <PlatformLink to="/tracing/streamed-spans">stream mode</PlatformLink>, make sure to wrap <PlatformIdentifier name="before-send-span" /> with `Sentry.withStreamedSpan()`.
If you're using <PlatformLink to="/tracing/streamed-spans" fallbackPlatform="javascript">stream mode</PlatformLink>, make sure to wrap <PlatformIdentifier name="before-send-span" /> with `Sentry.withStreamedSpan()`.

</Alert>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: Connect
description: "Adds performance instrumentation for Connect. (default)"
supported:
- javascript.node
- javascript.connect
- javascript.hapi
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ notSupported:
- javascript.aws-lambda
- javascript.azure-functions
- javascript.connect
- javascript.elysia
- javascript.express
- javascript.fastify
- javascript.gcp-functions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ notSupported:
- javascript.aws-lambda
- javascript.azure-functions
- javascript.connect
- javascript.elysia
- javascript.express
- javascript.fastify
- javascript.gcp-functions
Expand Down
14 changes: 7 additions & 7 deletions docs/platforms/javascript/common/configuration/options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ Set this option to `false` to disable sending of client reports. Client reports

Set this option to `true` to add stack local variables to stack traces.

<PlatformSection notSupported={["javascript.bun", "javascript.cloudflare", "javascript.deno"]}>
<PlatformSection notSupported={["javascript.bun", "javascript.cloudflare", "javascript.deno", "javascript.effect", "javascript.elysia", "javascript.firebase", "javascript.nitro"]}>

For more advanced configuration options, see the documentation on the <PlatformLink to="/configuration/integrations/localvariables">Local Variables integration options</PlatformLink>.

Expand Down Expand Up @@ -523,7 +523,7 @@ For example, the Sentry Nuxt SDK does not attach an error handler as it's captur

<Alert>

If you're using <PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink>, tracing options work the same way as described but apply to service spans instead of transactions.
If you're using <PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink>, tracing options work the same way as described but apply to service spans instead of transactions.

</Alert>

Expand Down Expand Up @@ -668,7 +668,7 @@ A list of strings or regex patterns matching spans that shouldn't be sent to Sen
If a matching span is a transaction or service span, the entire local trace will be dropped. If a child span matches, its children will be reparented to the dropped span's parent span.
By default, no spans are ignored.

In <PlatformLink to="/tracing/streamed-spans">stream mode</PlatformLink>, `ignoreSpans` is evaluated at span start, so only the span name and attributes available at that point are taken into account. Any name updates or additional attributes added while the span is active won't influence whether the span is dropped.
In <PlatformLink to="/tracing/streamed-spans" fallbackPlatform="javascript">stream mode</PlatformLink>, `ignoreSpans` is evaluated at span start, so only the span name and attributes available at that point are taken into account. Any name updates or additional attributes added while the span is active won't influence whether the span is dropped.

<Alert level="warning" title="Migrating from transaction mode?">

Expand Down Expand Up @@ -729,7 +729,7 @@ If set to `true`, the SDK adds the [W3C `traceparent` header](https://www.w3.org
This header is attached in addition to the `sentry-trace` and `baggage` headers.
Set this option to `true` if your backend services are instrumented with e.g. OpenTelemetry or other W3C Trace Context compatible libraries and you want to continue traces from the client.

<PlatformSection notSupported={["javascript.cordova"]}>
<PlatformSection notSupported={["javascript.aws-lambda", "javascript.azure-functions", "javascript.connect", "javascript.cordova", "javascript.express", "javascript.fastify", "javascript.gcp-functions", "javascript.hapi", "javascript.hono", "javascript.koa", "javascript.nestjs", "javascript.nitro", "javascript.node"]}>

**Important:** Make sure that your backend services' CORS configuration allows the `traceparent` header.
Otherwise, requests might be blocked.
Expand Down Expand Up @@ -757,13 +757,13 @@ Self-hosted Sentry users should set this option to `false`, as standalone `gen_a
Controls how spans are sent to Sentry:

- In transaction mode (`'static'`, the default), all spans are collected in memory and sent to Sentry as a single transaction once the root span ends.
- In <PlatformLink to="/tracing/streamed-spans/">stream mode</PlatformLink> (`'stream'`), spans are sent in batches as they finish.
- In <PlatformLink to="/tracing/streamed-spans/" fallbackPlatform="javascript">stream mode</PlatformLink> (`'stream'`), spans are sent in batches as they finish.

<PlatformCategorySection supported={["browser"]}>
<Alert>

You don't need to use this option if you're using a browser-based SDK (for example, React or Vue) or a framework SDK that handles client-side rendering (for example Next.js or Remix).
Instead, <PlatformLink to="/tracing/streamed-spans">enable stream mode</PlatformLink> by adding `spanStreamingIntegration` to your integrations when initializing the SDK.
Instead, <PlatformLink to="/tracing/streamed-spans" fallbackPlatform="javascript">enable stream mode</PlatformLink> by adding `spanStreamingIntegration` to your integrations when initializing the SDK.

</Alert>

Expand Down Expand Up @@ -850,7 +850,7 @@ This option is required to enable profiling (default is `0`).
Determines how profiling sessions are controlled. It has two modes:

- `'manual'` (default): You control when profiling starts and stops using the `startProfiler()` and `stopProfiler()` functions. In this mode, profile sampling is only affected by `profileSessionSampleRate`.<PlatformSection notSupported={["javascript.bun", "javascript.cordova", "javascript.capacitor", "javascript.deno", "javascript.cloudflare"]}> Read more about these functions in the <PlatformLink to="/profiling">profiling API documentation</PlatformLink>.</PlatformSection>
- `'trace'`: Profiling starts and stops automatically with transactions (or service spans if you're using <PlatformLink to="/tracing/streamed-spans">stream mode</PlatformLink>), as long as tracing is enabled. The profiler runs as long as there is at least one sampled transaction. In this mode, profiling is affected by both `profileSessionSampleRate` and your tracing sample rate (`tracesSampleRate` or `tracesSampler`).
- `'trace'`: Profiling starts and stops automatically with transactions (or service spans if you're using <PlatformLink to="/tracing/streamed-spans" fallbackPlatform="javascript">stream mode</PlatformLink>), as long as tracing is enabled. The profiler runs as long as there is at least one sampled transaction. In this mode, profiling is affected by both `profileSessionSampleRate` and your tracing sample rate (`tracesSampleRate` or `tracesSampler`).

</SdkOption>

Expand Down
4 changes: 2 additions & 2 deletions docs/platforms/javascript/common/crons/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ supported:

<Expandable title="Why aren't recurring job errors showing up on my monitor details page?">

You may not have <PlatformLink to="/crons/#connecting-errors-to-cron-monitors">linked errors to your monitor</PlatformLink>.
You may not have [linked errors to your monitor](/platforms/javascript/guides/node/crons/#connecting-errors-to-cron-monitors).

</Expandable>

<Expandable title="Why am I not receiving alerts when my monitor fails?">

You may not have <PlatformLink to="/crons/#alerts">set up alerts for your monitor</PlatformLink>.
You may not have [set up alerts for your monitor](/platforms/javascript/guides/node/crons/#alerts).

</Expandable>
</PlatformCategorySection>
Expand Down
Loading
Loading