Aller au contenu principal

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.

Constructeur
Lien direct vers Constructeur

new SentryExporter(config: SentryExporterConfig)

SentryExporterConfig
Lien 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 Logger
  • logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error' - Niveau de journalisation (par défaut : INFO)

Méthodes
Lien direct vers Méthodes

exportTracingEvent
Lien 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.

flush
Lien 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.

shutdown
Lien 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.

Utilisation
Lien 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 explicite
Lien 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 échantillonnage
Lien 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ées
Lien 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 spans
Lien direct vers Mappage des spans

Les types de spans Mastra sont associés aux opérations Sentry :

SpanType MastraOpération Sentry
AGENT_RUNgen_ai.invoke_agent
MODEL_GENERATIONgen_ai.chat
MODEL_STEP(ignoré)
MODEL_CHUNK(ignoré)
TOOL_CALLgen_ai.execute_tool
MCP_TOOL_CALLgen_ai.execute_tool
PROVIDER_TOOL_CALLgen_ai.execute_tool
WORKFLOW_RUNworkflow.run
WORKFLOW_STEPworkflow.step
WORKFLOW_CONDITIONALworkflow.conditional
WORKFLOW_CONDITIONAL_EVALworkflow.conditional
WORKFLOW_PARALLELworkflow.parallel
WORKFLOW_LOOPworkflow.loop
WORKFLOW_SLEEPworkflow.sleep
WORKFLOW_WAIT_EVENTworkflow.wait
PROCESSOR_RUNai.processor
GENERICai.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'environnement
Lien direct vers Variables d'environnement

L'Exporter lit sa configuration dans les variables d'environnement suivantes :

VariableDescription
SENTRY_DSNData Source Name : indique au SDK où envoyer les événements
SENTRY_ENVIRONMENTNom de l'environnement de déploiement
SENTRY_RELEASEVersion du code déployé

OpenTelemetry attributes
Lien 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 Mastra
  • gen_ai.conversation.id : identifiant du thread de conversation, défini à partir de metadata.threadId pour regrouper les spans dans la vue Conversations de Sentry

Spans MODEL_GENERATION :

  • gen_ai.operation.name : chat
  • gen_ai.system : Provider du modèle
  • gen_ai.request.model : identifiant du modèle
  • gen_ai.request.messages : messages ou prompts d'entrée (JSON)
  • gen_ai.response.model : modèle de la réponse
  • gen_ai.response.text : texte de sortie
  • gen_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ée
  • gen_ai.usage.output_tokens : nombre de tokens de sortie
  • gen_ai.usage.total_tokens : nombre total de tokens
  • gen_ai.request.stream : indicateur de streaming
  • gen_ai.request.temperature : paramètre de température
  • gen_ai.completion_start_time : heure du premier token

Spans TOOL_CALL :

  • gen_ai.operation.name : execute_tool
  • gen_ai.tool.name : identifiant du Tool
  • gen_ai.tool.type : function
  • gen_ai.tool.call.id : identifiant de l'appel de Tool
  • gen_ai.tool.input : entrée du Tool
  • gen_ai.tool.output : sortie du Tool
  • tool.success : indicateur de réussite

Spans AGENT_RUN :

  • gen_ai.operation.name : invoke_agent
  • gen_ai.agent.name : identifiant de l'Agent
  • gen_ai.pipeline.name : nom de l'Agent
  • gen_ai.agent.instructions : instructions de l'Agent
  • gen_ai.response.model : modèle de la génération enfant
  • gen_ai.response.text : sortie de la génération enfant
  • gen_ai.usage.* : utilisation des tokens de la génération enfant