diff --git a/docs/platforms/javascript/common/ai-agent-monitoring/index.mdx b/docs/platforms/javascript/common/ai-agent-monitoring/index.mdx index de879f1d2a571..fc47b34560e24 100644 --- a/docs/platforms/javascript/common/ai-agent-monitoring/index.mdx +++ b/docs/platforms/javascript/common/ai-agent-monitoring/index.mdx @@ -69,6 +69,7 @@ import { openAIIntegration } from "___SDK_PACKAGE___"; Sentry.init({ dsn: "___PUBLIC_DSN___", tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ openAIIntegration(), ], @@ -101,6 +102,7 @@ import { openAIIntegration } from "___SDK_PACKAGE___"; Sentry.init({ dsn: "___PUBLIC_DSN___", tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ openAIIntegration({ recordInputs: false, // Don't capture prompts @@ -120,9 +122,9 @@ Sentry.init({ ### Streaming Gen AI Spans -AI spans with large inputs and outputs can hit transaction payload size limits. Set `streamGenAiSpans` to `true` to send `gen_ai` spans as standalone envelope items instead of bundling them in the transaction. +Set `streamGenAiSpans` to `true` to send `gen_ai` spans as standalone envelope items instead of bundling them in the transaction. This is recommended for all AI monitoring setups and is required for Conversations to work. -Enable this option if `gen_ai` spans are being dropped because the transaction payload exceeds size limits. +Without this option, AI spans with large inputs and outputs can hit transaction payload size limits and be dropped. diff --git a/docs/platforms/javascript/common/configuration/integrations/anthropic.mdx b/docs/platforms/javascript/common/configuration/integrations/anthropic.mdx index 949458f207c8b..95dff307a22b0 100644 --- a/docs/platforms/javascript/common/configuration/integrations/anthropic.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/anthropic.mdx @@ -127,6 +127,7 @@ Defaults to `true` if `sendDefaultPii` is `true`. dsn: "____PUBLIC_DSN____", // Tracing must be enabled for agent monitoring to work tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.anthropicAIIntegration({ // your options here diff --git a/docs/platforms/javascript/common/configuration/integrations/google-genai.mdx b/docs/platforms/javascript/common/configuration/integrations/google-genai.mdx index 9e1370dbaa3e5..33d8fd392038a 100644 --- a/docs/platforms/javascript/common/configuration/integrations/google-genai.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/google-genai.mdx @@ -123,6 +123,7 @@ Sentry.init({ dsn: "____PUBLIC_DSN____", // Tracing must be enabled for agent monitoring to work tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.googleGenAIIntegration({ // your options here diff --git a/docs/platforms/javascript/common/configuration/integrations/langchain.mdx b/docs/platforms/javascript/common/configuration/integrations/langchain.mdx index 63903dacca66f..7dccf7be156fe 100644 --- a/docs/platforms/javascript/common/configuration/integrations/langchain.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/langchain.mdx @@ -127,6 +127,7 @@ Sentry.init({ dsn: "____PUBLIC_DSN____", // Tracing must be enabled for agent monitoring to work tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.langChainIntegration({ // your options here diff --git a/docs/platforms/javascript/common/configuration/integrations/langgraph.mdx b/docs/platforms/javascript/common/configuration/integrations/langgraph.mdx index 9c8e24665e84a..a6fea67104090 100644 --- a/docs/platforms/javascript/common/configuration/integrations/langgraph.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/langgraph.mdx @@ -149,6 +149,7 @@ Sentry.init({ dsn: "____PUBLIC_DSN____", // Tracing must be enabled for agent monitoring to work tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.langGraphIntegration({ // your options here diff --git a/docs/platforms/javascript/common/configuration/integrations/openai.mdx b/docs/platforms/javascript/common/configuration/integrations/openai.mdx index 96b64e5ea59f3..b6ae1b5b197e5 100644 --- a/docs/platforms/javascript/common/configuration/integrations/openai.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/openai.mdx @@ -127,6 +127,7 @@ Sentry.init({ dsn: "____PUBLIC_DSN____", // Tracing must be enabled for agent monitoring to work tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.openAIIntegration({ // your options here @@ -160,7 +161,7 @@ Streaming and non-streaming requests are automatically detected and handled appr -When using OpenAI's streaming API, you must also pass `stream_options: { include_usage: true }` to receive token usage data. Without this option, OpenAI does not include `prompt_tokens` or `completion_tokens` in streamed responses, and Sentry will be unable to capture `gen_ai.usage.input_tokens` / `gen_ai.usage.output_tokens` on the resulting span. This is an OpenAI API behavior, not a Sentry limitation. See [OpenAI docs on stream options](https://platform.openai.com/docs/api-reference/chat/create#chat-create-stream_options). +When using OpenAI's streaming API, you must also pass `stream_options: { include_usage: true }` to receive token usage data. Without this option, OpenAI does not include `prompt_tokens` or `completion_tokens` in streamed responses, and Sentry will be unable to capture `gen_ai.usage.input_tokens` / `gen_ai.usage.output_tokens` on the resulting span. This is an OpenAI API behavior, not a Sentry limitation. See [OpenAI API reference](https://platform.openai.com/docs/api-reference/chat/create). diff --git a/docs/platforms/javascript/common/configuration/integrations/vercelai.mdx b/docs/platforms/javascript/common/configuration/integrations/vercelai.mdx index 737c79ba043ef..fa6f767d37727 100644 --- a/docs/platforms/javascript/common/configuration/integrations/vercelai.mdx +++ b/docs/platforms/javascript/common/configuration/integrations/vercelai.mdx @@ -46,6 +46,7 @@ The `vercelAIIntegration` adds instrumentation for the [`ai`](https://www.npmjs. Sentry.init({ dsn: "____PUBLIC_DSN____" tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [ Sentry.vercelAIIntegration({ recordInputs: true, @@ -64,6 +65,7 @@ This integration is not enabled by default. You need to manually enable it by pa Sentry.init({ dsn: "____PUBLIC_DSN____" tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [Sentry.vercelAIIntegration()], }); ``` @@ -77,6 +79,7 @@ This integration is enabled by default in the Node runtime, but not in the Edge Sentry.init({ dsn: "____PUBLIC_DSN____" tracesSampleRate: 1.0, + streamGenAiSpans: true, integrations: [Sentry.vercelAIIntegration()], }); ``` diff --git a/docs/platforms/javascript/common/configuration/options.mdx b/docs/platforms/javascript/common/configuration/options.mdx index 454f2d3d3a0bf..cee6e0d4f9a50 100644 --- a/docs/platforms/javascript/common/configuration/options.mdx +++ b/docs/platforms/javascript/common/configuration/options.mdx @@ -602,6 +602,14 @@ See De + + +When set to `true`, `gen_ai` spans are sent as standalone envelope items instead of being bundled in the transaction payload. This prevents AI spans with large inputs and outputs from being dropped due to transaction payload size limits. + +Enable this option if you are using AI Agent Monitoring or the Conversations feature. + + + ## Logs Options