본문으로 건너뛰기

아리제 수출업체

아리제AI 애플리케이션을 위한 관찰 플랫폼을 제공합니다.Phoenix(오픈 소스) 및아리제AX(기업). Arize 내보내기는 OpenTelemetry를 사용하여 추적을 보내고오픈인퍼런스OpenInference를 지원하는 모든 OpenTelemetry 플랫폼과 호환되는 의미론적 규칙입니다.

설치
설치에 대한 직접 링크

npm install @mastra/arize@latest

구성
구성에 대한 직접 링크

피닉스 설정
피닉스 설정에 대한 직접 링크

Phoenix는 자체 호스팅하거나 Phoenix Cloud를 통해 사용할 수 있는 오픈 소스 관찰 플랫폼입니다.

전제조건
전제조건에 대한 직접 링크

  1. 피닉스 인스턴스: Docker를 사용하여 배포하거나 다음 사이트에 가입하세요.Phoenix Cloud
  2. 엔드포인트: Phoenix 엔드포인트 URL(다음으로 끝남)/v1/traces)
  3. API 키: 인증되지 않은 인스턴스의 경우 선택 사항, Phoenix Cloud의 경우 필수
  4. 환경 변수: 구성 설정
.env
# Required
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006/v1/traces # Or your Phoenix Cloud URL

# Optional
PHOENIX_API_KEY=your-api-key # For authenticated Phoenix instances
PHOENIX_PROJECT_NAME=mastra-service # Defaults to 'mastra-service'

제로 구성 설정
제로 구성 설정에 대한 직접 링크

환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다.

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArizeExporter } from '@mastra/arize'

export const mastra = new Mastra({
observability: new Observability({
configs: {
arize: {
serviceName: 'mastra-service',
exporters: [new ArizeExporter()],
},
},
}),
})

명시적 구성
명시적 구성에 대한 직접 링크

자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨).

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArizeExporter } from '@mastra/arize'

export const mastra = new Mastra({
observability: new Observability({
configs: {
arize: {
serviceName: process.env.PHOENIX_PROJECT_NAME || 'mastra-service',
exporters: [
new ArizeExporter({
endpoint: process.env.PHOENIX_COLLECTOR_ENDPOINT!,
apiKey: process.env.PHOENIX_API_KEY,
projectName: process.env.PHOENIX_PROJECT_NAME,
}),
],
},
},
}),
})

:::info[Docker로 빠른 시작]

인Memory Phoenix 인스턴스를 사용하여 로컬에서 테스트합니다.

docker run --pull=always -d --name arize-phoenix -p 6006:6006 \
-e PHOENIX_SQL_DATABASE_URL="sqlite:///:memory:" \
arizephoenix/phoenix:latest

PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006/v1/traces를 설정하고 Mastra Agent를 실행하면 localhost:6006에서 Trace를 확인할 수 있습니다. :::

아리라이즈 AX 설정
아리라이즈 AX 설정에 대한 직접 링크

Arize AX는 프로덕션 AI 시스템을 위한 고급 기능을 갖춘 엔터프라이즈 관찰 플랫폼입니다.

전제조건
전제조건에 대한 직접 링크

  1. Arize AX 계정: 가입하세요app.arize.com
  2. 공간ID: 조직의 공간 식별자
  3. API 키: Arize AX 설정에서 생성
  4. 환경 변수: 자격 증명을 설정하세요
.env
# Required
ARIZE_SPACE_ID=your-space-id
ARIZE_API_KEY=your-api-key

# Optional
ARIZE_PROJECT_NAME=mastra-service

제로 구성 설정
제로 구성 설정에 대한 직접 링크

환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다.

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArizeExporter } from '@mastra/arize'

export const mastra = new Mastra({
observability: new Observability({
configs: {
arize: {
serviceName: 'mastra-service',
exporters: [new ArizeExporter()],
},
},
}),
})

명시적 구성
명시적 구성에 대한 직접 링크

자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨).

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArizeExporter } from '@mastra/arize'

export const mastra = new Mastra({
observability: new Observability({
configs: {
arize: {
serviceName: process.env.ARIZE_PROJECT_NAME || 'mastra-service',
exporters: [
new ArizeExporter({
apiKey: process.env.ARIZE_API_KEY!,
spaceId: process.env.ARIZE_SPACE_ID!,
projectName: process.env.ARIZE_PROJECT_NAME,
}),
],
},
},
}),
})

구성 옵션
구성 옵션에 대한 직접 링크

Arize 내보내기는 OpenTelemetry 동작을 미세 조정하기 위한 고급 구성을 지원합니다.

완전한 구성
완전한 구성에 대한 직접 링크

new ArizeExporter({
// Phoenix Configuration
endpoint: 'https://your-collector.example.com/v1/traces', // Required for Phoenix

// Arize AX Configuration
spaceId: 'your-space-id', // Required for Arize AX

// Shared Configuration
apiKey: 'your-api-key', // Required for authenticated endpoints
projectName: 'mastra-service', // Optional project name

// Optional OTLP settings
headers: {
'x-custom-header': 'value', // Additional headers for OTLP requests
},

// Debug and performance tuning
logLevel: 'debug', // Logging: debug | info | warn | error
batchSize: 512, // Batch size before exporting spans
timeout: 30000, // Timeout in ms before exporting spans

// Custom resource attributes
resourceAttributes: {
'deployment.environment': process.env.NODE_ENV,
'service.version': process.env.APP_VERSION,
},
})

일괄 처리 옵션
일괄 처리 옵션에 대한 직접 링크

추적을 일괄 처리하고 내보내는 방법을 제어합니다.

new ArizeExporter({
endpoint: process.env.PHOENIX_COLLECTOR_ENDPOINT!,
apiKey: process.env.PHOENIX_API_KEY,

// Batch processing configuration
batchSize: 512, // Number of spans to batch (default: 512)
timeout: 30000, // Max time in ms to wait before export (default: 30000)
})

자원 속성
자원 속성에 대한 직접 링크

내보낸 모든 범위에 맞춤 속성을 추가합니다.

new ArizeExporter({
endpoint: process.env.PHOENIX_COLLECTOR_ENDPOINT!,
resourceAttributes: {
'deployment.environment': process.env.NODE_ENV,
'service.namespace': 'production',
'service.instance.id': process.env.HOSTNAME,
'custom.attribute': 'value',
},
})

커스텀 메타데이터
커스텀 메타데이터에 대한 직접 링크

예약되지 않은 Span 속성은 OpenInference metadata 페이로드로 직렬화되어 Arize/Phoenix에 표시됩니다. tracingOptions.metadata를 통해 추가할 수 있습니다.

await agent.generate(input, {
tracingOptions: {
metadata: {
companyId: 'acme-co',
tier: 'enterprise',
},
},
})

input, output, sessionId, 스레드/사용자 ID, OpenInference ID 같은 예약 필드는 자동으로 제외됩니다.

OpenInference 의미론적 규칙
OpenInference 의미론적 규칙에 대한 직접 링크

이 Exporter는 생성형 AI 애플리케이션을 위한 OpenInference 의미 체계 규칙을 구현하여 서로 다른 Observability 플랫폼에서 표준화된 Trace 구조를 제공합니다.