sentry-setup-ai-monitoring

por sentry

Detecta e configura automaticamente o monitoramento do Sentry para chamadas de LLM, agentes e SDKs de IA. Detecta automaticamente pacotes de IA instalados (OpenAI, Anthropic, LangChain, Google GenAI, Vercel AI, Pydantic AI e outros) e ativa integrações apropriadas sem registro manual em Python. Requer rastreamento habilitado (tracesSampleRate > 0) e suporta instrumentação manual de spans via tipos de operação gen_ai.* para SDKs não suportados. Captura modelo, contagens de tokens e latência por padrão; prompt e saída...

npx skills add https://github.com/getsentry/sentry-agent-skills --skill sentry-setup-ai-monitoring

Setup Sentry AI Agent Monitoring

Configure Sentry to track LLM calls, agent executions, tool usage, and token consumption.

Invoke This Skill When

  • User asks to "monitor AI/LLM calls" or "track OpenAI/Anthropic usage"
  • User wants "AI observability" or "agent monitoring"
  • User asks about token usage, model latency, or AI costs

Important: The SDK versions, API names, and code samples below are examples. Always verify against docs.sentry.io before implementing, as APIs and minimum versions may have changed.

Prerequisites

AI monitoring requires tracing enabled (tracesSampleRate > 0).

Data Capture Warning

Prompt and output recording captures user content that is likely PII. Before enabling recordInputs/recordOutputs (JS) or include_prompts/send_default_pii (Python), confirm:

  • The application's privacy policy permits capturing user prompts and model responses
  • Captured data complies with applicable regulations (GDPR, CCPA, etc.)
  • Sentry data retention settings are appropriate for the sensitivity of the data

Ask the user whether they want prompt/output capture enabled. Do not enable it by default — configure it only when explicitly requested or confirmed. Use tracesSampleRate: 1.0 only in development; in production, use a lower value or a tracesSampler function.

Detection First

Always detect installed AI SDKs before configuring:

# JavaScript
grep -E '"(openai|@anthropic-ai/sdk|ai|@langchain|@google/genai)"' package.json

# Python
grep -E '(openai|anthropic|langchain|huggingface)' requirements.txt pyproject.toml 2>/dev/null

Supported SDKs

JavaScript

PackageIntegrationMin Sentry SDKAuto?
openaiopenAIIntegration()10.28.0Yes
@anthropic-ai/sdkanthropicAIIntegration()10.28.0Yes
ai (Vercel)vercelAIIntegration()10.6.0Yes*
@langchain/*langChainIntegration()10.28.0Yes
@langchain/langgraphlangGraphIntegration()10.28.0Yes
@google/genaigoogleGenAIIntegration()10.28.0Yes

*Vercel AI: 10.6.0+ for Node.js, Cloudflare Workers, Vercel Edge Functions, Bun. 10.12.0+ for Deno. Requires experimental_telemetry per-call.

Python

Integrations auto-enable when the AI package is installed — no explicit registration needed:

PackageAuto?Notes
openaiYesIncludes OpenAI Agents SDK
anthropicYes
langchain / langgraphYes
huggingface_hubYes
google-genaiYes
pydantic-aiYes
litellmNoRequires explicit integration
mcp (Model Context Protocol)Yes

JavaScript Configuration

Node.js — auto-enabled integrations

Just ensure tracing is enabled. Integrations auto-enable when the AI package is installed:

Sentry.init({
  dsn: "YOUR_DSN",
  tracesSampleRate: 1.0, // Lower in production (e.g., 0.1)
  // OpenAI, Anthropic, Google GenAI, LangChain integrations auto-enable in Node.js
});

To customize (e.g., enable prompt capture — see Data Capture Warning):

integrations: [
  Sentry.openAIIntegration({
    // recordInputs: true,  // Opt-in: captures prompt content (PII)
    // recordOutputs: true, // Opt-in: captures response content (PII)
  }),
],

Browser / Next.js OpenAI (manual wrapping required)

In browser-side code or Next.js meta-framework apps, auto-instrumentation is not available. Wrap the client manually:

import OpenAI from "openai";
import * as Sentry from "@sentry/nextjs"; // or @sentry/react, @sentry/browser

const openai = Sentry.instrumentOpenAiClient(new OpenAI());
// Use 'openai' client as normal

LangChain / LangGraph (auto-enabled)

integrations: [
  Sentry.langChainIntegration({
    // recordInputs: true,  // Opt-in: captures prompt content (PII)
    // recordOutputs: true, // Opt-in: captures response content (PII)
  }),
  Sentry.langGraphIntegration({
    // recordInputs: true,
    // recordOutputs: true,
  }),
],

Vercel AI SDK

Add to sentry.edge.config.ts for Edge runtime:

integrations: [Sentry.vercelAIIntegration()],

Enable telemetry per-call:

await generateText({
  model: openai("gpt-4o"),
  prompt: "Hello",
  experimental_telemetry: {
    isEnabled: true,
    // recordInputs: true,  // Opt-in: captures prompt content (PII)
    // recordOutputs: true, // Opt-in: captures response content (PII)
  },
});

Python Configuration

Integrations auto-enable — just init with tracing. Only add explicit imports to customize options:

import sentry_sdk

sentry_sdk.init(
    dsn="YOUR_DSN",
    traces_sample_rate=1.0,  # Lower in production (e.g., 0.1)
    # send_default_pii=True,  # Opt-in: required for prompt capture (sends user PII)
    # Integrations auto-enable when the AI package is installed.
    # Only specify explicitly to customize (e.g., include_prompts):
    # integrations=[OpenAIIntegration(include_prompts=True)],
)

Manual Instrumentation

Use when no supported SDK is detected.

Span Types

op ValuePurpose
gen_ai.requestIndividual LLM calls
gen_ai.invoke_agentAgent execution lifecycle
gen_ai.execute_toolTool/function calls
gen_ai.handoffAgent-to-agent transitions

Example (JavaScript)

await Sentry.startSpan({
  op: "gen_ai.request",
  name: "LLM request gpt-4o",
  attributes: { "gen_ai.request.model": "gpt-4o" },
}, async (span) => {
  span.setAttribute("gen_ai.request.messages", JSON.stringify(messages));
  const result = await llmClient.complete(prompt);
  span.setAttribute("gen_ai.usage.input_tokens", result.inputTokens);
  span.setAttribute("gen_ai.usage.output_tokens", result.outputTokens);
  return result;
});

Key Attributes

AttributeDescription
gen_ai.request.modelModel identifier
gen_ai.request.messagesJSON input messages
gen_ai.usage.input_tokensInput token count
gen_ai.usage.output_tokensOutput token count
gen_ai.agent.nameAgent identifier
gen_ai.tool.nameTool identifier

Enable prompt/output capture only after confirming with the user (see Data Capture Warning above).

Verification

After configuring, make an LLM call and check the Sentry Traces dashboard. AI spans appear with gen_ai.* operations showing model, token counts, and latency.

Troubleshooting

IssueSolution
AI spans not appearingVerify tracesSampleRate > 0, check SDK version
Token counts missingSome providers don't return tokens for streaming
Prompts not capturedEnable recordInputs/include_prompts
Vercel AI not workingAdd experimental_telemetry to each call

Mais skills de sentry

generate-frontend-forms
sentry
Guia para criar formulários usando o novo sistema de formulários do Sentry. Use ao implementar formulários, campos de formulário, validação ou funcionalidade de salvamento automático.
official
sentry-snapshots-cocoa
sentry
Configuração completa de Snapshots do Sentry para projetos Apple/Cocoa. Use quando for solicitado a "configurar SnapshotPreviews", "configurar testes de snapshot Apple", "enviar snapshots Apple para…
official
architecture-review
sentry
Revisão de saúde do código em nível de equipe. Encontra módulos monolíticos, falhas silenciosas, lacunas de segurança de tipo, buracos na cobertura de testes e problemas de compatibilidade com LLM.
official
linear-type-labeler
sentry
Classifica issues do Linear e aplica um rótulo de Tipo da taxonomia de rótulos do workspace do Sentry com base no conteúdo do título e da descrição de cada issue.
official
sentry-flutter-sdk
sentry
Configuração completa do SDK Sentry para Flutter e Dart. Use quando for solicitado "adicionar Sentry ao Flutter", "instalar sentry_flutter", "configurar Sentry no Dart" ou configurar erro…
official
sentry-svelte-sdk
sentry
Configuração completa do SDK do Sentry para Svelte e SvelteKit. Use quando for solicitado a "adicionar Sentry ao Svelte", "adicionar Sentry ao SvelteKit", "instalar @sentry/sveltekit" ou configurar…
official
vercel-react-best-practices
sentry
Diretrizes de otimização de desempenho para React e Next.js da Vercel Engineering. Esta habilidade deve ser usada ao escrever, revisar ou refatorar React/Next.js…
official
sentry-tanstack-start-sdk
sentry
Configuração completa do SDK Sentry para TanStack Start React. Use quando for solicitado "adicionar Sentry ao TanStack Start", "instalar @sentry/tanstackstart-react" ou configurar erro…
official