跳至主要內容

ArizeExporter

將 Tracing 數據傳送至 Arize Phoenix、Arize AX,或任何支援 OpenInference 語義慣例且與 OpenTelemetry 兼容的可觀測性平台。

建構函式
建構函式 的直接連結

new ArizeExporter(config: ArizeExporterConfig)

ArizeExporterConfig
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>
}

繼承自 OtelExporterConfig(不包括 provider),當中包括:

  • timeout?: number - 匯出逾時時間(毫秒)(預設:30000)
  • batchSize?: number - 每批的 span 數量(預設:512)
  • logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error' - 記錄層級(預設:WARN)
  • resourceAttributes?: Record<string, any> - 自訂資源屬性

Metadata 傳遞
Metadata 傳遞 的直接連結

非保留的 span 屬性會序列化至 OpenInference metadata payload。請透過 tracingOptions.metadata 加入這些屬性(例如 companyIdtier)。inputoutputsessionId、thread/user ID 及 OpenInference ID 等保留欄位會自動排除。

方法
方法 的直接連結

exportTracingEvent
exporttracingevent 的直接連結

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

將 tracing 事件匯出至已設定的 endpoint。

export
export 的直接連結

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

使用 OpenTelemetry 及 OpenInference 語義慣例批次匯出 span。

flush
flush 的直接連結

async flush(): Promise<void>

在不關閉 exporter 的情況下,強制將所有已緩衝的 span 清空並匯出至已設定的 endpoint。這對 serverless 環境尤其有用,可確保 span 在 runtime 終止前完成匯出。

shutdown
shutdown 的直接連結

async shutdown(): Promise<void>

清空待處理數據並關閉 client。

用法
用法 的直接連結

零設定(使用環境變數)
零設定(使用環境變數) 的直接連結

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()

Phoenix 設定
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',
})

Arize AX 設定
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',
})

OpenInference 語義慣例
openinference-semantic-conventions 的直接連結

ArizeExporter 為生成式 AI 應用程式實作了 OpenInference 語義慣例,讓不同可觀測性平台採用標準化的 trace 結構。

Tag 支援
Tag 支援 的直接連結

ArizeExporter 支援為 trace 加上 tag,以便分類和篩選。Tag 只會套用至 root span,並對應至 OpenInference 原生的 tag.tags 語義慣例。

用法
用法 的直接連結

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

Tag 的儲存方式
Tag 的儲存方式 的直接連結

Tag 使用 OpenInference tag.tags 屬性儲存:

{
"tag.tags": ["production", "experiment-v2", "user-request"]
}