Anthropic
Manually instrument the Anthropic SDK in React Native to capture spans and LLM interactions.
Import name: Sentry.instrumentAnthropicAiClient
The instrumentAnthropicAiClient helper adds instrumentation for the @anthropic-ai/sdk by wrapping an Anthropic client instance and recording LLM interactions with configurable input/output capture. The OpenTelemetry-based automatic integration available for Node.js does not work in React Native, so wrapping the client manually is the only supported path.
import * as Sentry from "@sentry/react-native";
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
// Warning: API keys included in your app bundle will be visible to anyone who
// inspects the bundle. Proxy LLM calls through your own backend whenever possible.
apiKey: "your-api-key",
});
const client = Sentry.instrumentAnthropicAiClient(anthropic, {
recordInputs: true,
recordOutputs: true,
});
// Use the wrapped client instead of the original anthropic instance
const response = await client.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello!" }],
});
import * as Sentry from "@sentry/react-native";
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
// Warning: API keys included in your app bundle will be visible to anyone who
// inspects the bundle. Proxy LLM calls through your own backend whenever possible.
apiKey: "your-api-key",
});
const client = Sentry.instrumentAnthropicAiClient(anthropic, {
recordInputs: true,
recordOutputs: true,
});
// Use the wrapped client instead of the original anthropic instance
const response = await client.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello!" }],
});
Make sure tracing is enabled for the spans produced by this integration to be captured.
The following options control what data is captured from Anthropic SDK calls:
Type: boolean (optional)
Records inputs to Anthropic SDK calls (such as prompts and messages).
Defaults to true if sendDefaultPii is true.
Type: boolean (optional)
Records outputs from Anthropic SDK calls (such as generated text and responses).
Defaults to true if sendDefaultPii is true.
By default, tracing support is added to the following Anthropic SDK calls:
messages.create()- Create messages with Claude modelsmessages.stream()- Stream messages with Claude modelsmessages.countTokens()- Count tokens for messagesmodels.get()- Get model informationcompletions.create()- Create completions (legacy)models.retrieve()- Retrieve model detailsbeta.messages.create()- Beta messages API
Streaming and non-streaming requests are automatically detected and handled appropriately.
@anthropic-ai/sdk:>=0.19.2 <1.0.0
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").