ArizeExporter
Envoie les données de Tracing à Arize Phoenix, Arize AX ou toute plateforme d’observabilité compatible avec OpenTelemetry qui prend en charge les conventions sémantiques OpenInference.
ConstructeurLien direct vers Constructeur
new ArizeExporter(config: ArizeExporterConfig)
ArizeExporterConfigLien direct vers arizeexporterconfig
type ArizeExporterConfig = Omit<OtelExporterConfig, 'provider'> & {
// Phoenix / OpenTelemetry configuration
endpoint?: string
apiKey?: string
// Arize AX configuration
spaceId?: string
// Common configuration
projectName?: string
headers?: Record<string, string>
}
Hérite de OtelExporterConfig (à l’exception de provider), qui comprend :
timeout?: number- Délai d’expiration de l’exportation, en millisecondes (valeur par défaut : 30000)batchSize?: number- Nombre de spans par lot (valeur par défaut : 512)logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'- Niveau de log (valeur par défaut : WARN)resourceAttributes?: Record<string, any>- Attributs de ressource personnalisés
Transmission des métadonnéesLien direct vers Transmission des métadonnées
Les attributs non réservés des spans sont sérialisés dans le payload metadata d’OpenInference. Ajoutez-les au moyen de tracingOptions.metadata (par exemple, companyId ou tier). Les champs réservés tels que input, output, sessionId, les ID de fil ou d’utilisateur et les ID OpenInference sont automatiquement exclus.
MéthodesLien direct vers Méthodes
exportTracingEventLien direct vers exporttracingevent
async exportTracingEvent(event: TracingEvent): Promise<void>
Exporte un événement de tracing vers l’endpoint configuré.
exportLien direct vers export
async export(spans: ReadOnlySpan[]): Promise<void>
Exporte les spans par lots avec OpenTelemetry en appliquant les conventions sémantiques OpenInference.
flushLien direct vers flush
async flush(): Promise<void>
Force l’envoi de tous les spans mis en mémoire tampon vers l’endpoint configuré sans arrêter l’exportateur. Cette méthode est utile dans les environnements serverless où vous devez vous assurer que les spans sont exportés avant l’arrêt du runtime.
shutdownLien direct vers shutdown
async shutdown(): Promise<void>
Envoie les données en attente et arrête le client.
UtilisationLien direct vers Utilisation
Sans configuration (avec des variables d’environnement)Lien direct vers Sans configuration (avec des variables d’environnement)
import { ArizeExporter } from '@mastra/arize'
// For Phoenix: Set PHOENIX_COLLECTOR_ENDPOINT, PHOENIX_API_KEY, PHOENIX_PROJECT_NAME
// For Arize AX: Set ARIZE_SPACE_ID, ARIZE_API_KEY, ARIZE_PROJECT_NAME
const exporter = new ArizeExporter()
Configuration de PhoenixLien direct vers Configuration de Phoenix
import { ArizeExporter } from '@mastra/arize'
const exporter = new ArizeExporter({
endpoint: 'http://localhost:6006/v1/traces',
apiKey: process.env.PHOENIX_API_KEY, // Optional for local Phoenix
projectName: 'my-ai-project',
})
Configuration d’Arize AXLien direct vers Configuration d’Arize AX
import { ArizeExporter } from '@mastra/arize'
const exporter = new ArizeExporter({
spaceId: process.env.ARIZE_SPACE_ID!,
apiKey: process.env.ARIZE_API_KEY!,
projectName: 'my-ai-project',
})
Conventions sémantiques OpenInferenceLien direct vers openinference-semantic-conventions
ArizeExporter implémente les conventions sémantiques OpenInference pour les applications d’IA générative, ce qui fournit une structure de Trace standardisée sur différentes plateformes d’observabilité.
Prise en charge des tagsLien direct vers Prise en charge des tags
ArizeExporter prend en charge l’ajout de tags aux Traces afin de les classer et de les filtrer. Les tags sont appliqués uniquement aux spans racines et correspondent à la convention sémantique native tag.tags d’OpenInference.
UtilisationLien direct vers Utilisation
const result = await agent.generate('Hello', {
tracingOptions: {
tags: ['production', 'experiment-v2', 'user-request'],
},
})
Stockage des tagsLien direct vers Stockage des tags
Les tags sont stockés au moyen de l’attribut OpenInference tag.tags :
{
"tag.tags": ["production", "experiment-v2", "user-request"]
}