Aller au contenu principal

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.

Constructeur
Lien direct vers Constructeur

new ArizeExporter(config: ArizeExporterConfig)

ArizeExporterConfig
Lien 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ées
Lien 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éthodes
Lien direct vers Méthodes

exportTracingEvent
Lien direct vers exporttracingevent

async exportTracingEvent(event: TracingEvent): Promise<void>

Exporte un événement de tracing vers l’endpoint configuré.

export
Lien direct vers export

async export(spans: ReadOnlySpan[]): Promise<void>

Exporte les spans par lots avec OpenTelemetry en appliquant les conventions sémantiques OpenInference.

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

shutdown
Lien direct vers shutdown

async shutdown(): Promise<void>

Envoie les données en attente et arrête le client.

Utilisation
Lien 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 Phoenix
Lien 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 AX
Lien 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 OpenInference
Lien 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 tags
Lien 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.

Utilisation
Lien direct vers Utilisation

const result = await agent.generate('Hello', {
tracingOptions: {
tags: ['production', 'experiment-v2', 'user-request'],
},
})

Stockage des tags
Lien 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"]
}