SentryExporter
Envoie les données de Tracing à Sentry pour le traçage et la surveillance de l'IA au moyen des conventions sémantiques OpenTelemetry.
ConstructeurLien direct vers Constructeur
new SentryExporter(config: SentryExporterConfig)
SentryExporterConfigLien direct vers sentryexporterconfig
interface SentryExporterConfig extends BaseExporterConfig {
dsn?: string
environment?: string
tracesSampleRate?: number
release?: string
options?: Partial<Sentry.NodeOptions>
}
Étend BaseExporterConfig, qui comprend :
logger?: IMastraLogger- Instance du LoggerlogLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'- Niveau de journalisation (par défaut : INFO)
MéthodesLien direct vers Méthodes
exportTracingEventLien direct vers exporttracingevent
async exportTracingEvent(event: TracingEvent): Promise<void>
Exporte un événement de Tracing vers Sentry. Gère les événements SPAN_STARTED, SPAN_UPDATED et SPAN_ENDED.
flushLien direct vers flush
async flush(): Promise<void>
Force l'envoi à Sentry de tous les spans en attente sans arrêter l'Exporter. Attend jusqu'à 2 secondes l'envoi des données en attente. Cette méthode est utile dans les environnements sans serveur où vous devez vous assurer que les spans sont exportés avant la fin de l'environnement d'exécution.
shutdownLien direct vers shutdown
async shutdown(): Promise<void>
Termine tous les spans actifs, efface l'état interne et ferme la connexion Sentry. Attend jusqu'à 2 secondes l'envoi des données en attente.
UtilisationLien direct vers Utilisation
Sans configuration (au moyen de variables d'environnement)Lien direct vers Sans configuration (au moyen de variables d'environnement)
import { SentryExporter } from '@mastra/sentry'
// Reads from SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_RELEASE
const exporter = new SentryExporter()
Configuration expliciteLien direct vers Configuration explicite
import { SentryExporter } from '@mastra/sentry'
const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
tracesSampleRate: 1.0,
release: '1.0.0',
})
Avec échantillonnageLien direct vers Avec échantillonnage
const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
tracesSampleRate: 0.1, // Send 10% of transactions to Sentry (recommended for high-load backends)
})
Avec des options Sentry personnaliséesLien direct vers Avec des options Sentry personnalisées
const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
options: {
integrations: [
// Custom Sentry integrations
],
beforeSend: event => {
// Custom event processing
return event
},
},
})
Mappage des spansLien direct vers Mappage des spans
Les types de spans Mastra sont associés aux opérations Sentry :
| SpanType Mastra | Opération Sentry |
|---|---|
AGENT_RUN | gen_ai.invoke_agent |
MODEL_GENERATION | gen_ai.chat |
MODEL_STEP | (ignoré) |
MODEL_CHUNK | (ignoré) |
TOOL_CALL | gen_ai.execute_tool |
MCP_TOOL_CALL | gen_ai.execute_tool |
PROVIDER_TOOL_CALL | gen_ai.execute_tool |
WORKFLOW_RUN | workflow.run |
WORKFLOW_STEP | workflow.step |
WORKFLOW_CONDITIONAL | workflow.conditional |
WORKFLOW_CONDITIONAL_EVAL | workflow.conditional |
WORKFLOW_PARALLEL | workflow.parallel |
WORKFLOW_LOOP | workflow.loop |
WORKFLOW_SLEEP | workflow.sleep |
WORKFLOW_WAIT_EVENT | workflow.wait |
PROCESSOR_RUN | ai.processor |
GENERIC | ai.span |
Les spans MODEL_STEP et MODEL_CHUNK sont ignorés afin de simplifier la hiérarchie de la Trace. Leurs données sont agrégées dans les spans MODEL_GENERATION.
Variables d'environnementLien direct vers Variables d'environnement
L'Exporter lit sa configuration dans les variables d'environnement suivantes :
| Variable | Description |
|---|---|
SENTRY_DSN | Data Source Name : indique au SDK où envoyer les événements |
SENTRY_ENVIRONMENT | Nom de l'environnement de déploiement |
SENTRY_RELEASE | Version du code déployé |
OpenTelemetry attributesLien direct vers opentelemetry-attributes
L'Exporter définit les attributs OpenTelemetry standard suivants :
Attributs communs (tous les spans) :
sentry.origin:auto.ai.mastra(identifie les spans provenant de Mastra)ai.span.type: type de span Mastragen_ai.conversation.id: identifiant du thread de conversation, défini à partir demetadata.threadIdpour regrouper les spans dans la vue Conversations de Sentry
Spans MODEL_GENERATION :
gen_ai.operation.name:chatgen_ai.system: Provider du modèlegen_ai.request.model: identifiant du modèlegen_ai.request.messages: messages ou prompts d'entrée (JSON)gen_ai.response.model: modèle de la réponsegen_ai.response.text: texte de sortiegen_ai.response.tool_calls: appels de Tool effectués pendant la génération (tableau JSON)gen_ai.usage.input_tokens: nombre de tokens d'entréegen_ai.usage.output_tokens: nombre de tokens de sortiegen_ai.usage.total_tokens: nombre total de tokensgen_ai.request.stream: indicateur de streaminggen_ai.request.temperature: paramètre de températuregen_ai.completion_start_time: heure du premier token
Spans TOOL_CALL :
gen_ai.operation.name:execute_toolgen_ai.tool.name: identifiant du Toolgen_ai.tool.type:functiongen_ai.tool.call.id: identifiant de l'appel de Toolgen_ai.tool.input: entrée du Toolgen_ai.tool.output: sortie du Tooltool.success: indicateur de réussite
Spans AGENT_RUN :
gen_ai.operation.name:invoke_agentgen_ai.agent.name: identifiant de l'Agentgen_ai.pipeline.name: nom de l'Agentgen_ai.agent.instructions: instructions de l'Agentgen_ai.response.model: modèle de la génération enfantgen_ai.response.text: sortie de la génération enfantgen_ai.usage.*: utilisation des tokens de la génération enfant