> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 아리제 수출업체 [아리제](https://arize.com/)AI 애플리케이션을 위한 관찰 플랫폼을 제공합니다.[Phoenix](https://phoenix.arize.com/)(오픈 소스) 및[아리제AX](https://arize.com/generative-ai/)(기업). Arize 내보내기는 OpenTelemetry를 사용하여 추적을 보내고[오픈인퍼런스](https://github.com/Arize-ai/openinference/tree/main/spec)OpenInference를 지원하는 모든 OpenTelemetry 플랫폼과 호환되는 의미론적 규칙입니다. ## 설치 **npm**: ```bash npm install @mastra/arize@latest ``` **pnpm**: ```bash pnpm add @mastra/arize@latest ``` **Yarn**: ```bash yarn add @mastra/arize@latest ``` **Bun**: ```bash bun add @mastra/arize@latest ``` ## 구성 ### 피닉스 설정 Phoenix는 자체 호스팅하거나 Phoenix Cloud를 통해 사용할 수 있는 오픈 소스 관찰 플랫폼입니다. #### 전제조건 1. **피닉스 인스턴스**: Docker를 사용하여 배포하거나 다음 사이트에 가입하세요.[Phoenix Cloud](https://app.phoenix.arize.com/login) 2. **엔드포인트**: Phoenix 엔드포인트 URL(다음으로 끝남)`/v1/traces`) 3. **API 키**: 인증되지 않은 인스턴스의 경우 선택 사항, Phoenix Cloud의 경우 필수 4. **환경 변수**: 구성 설정 ```bash # 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' ``` #### 제로 구성 설정 환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다. ```typescript 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()], }, }, }), }) ``` #### 명시적 구성 자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨). ```typescript 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 인스턴스를 사용하여 로컬에서 테스트합니다. ```bash 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](http://localhost:6006)에서 Trace를 확인할 수 있습니다. ::: ### 아리라이즈 AX 설정 Arize AX는 프로덕션 AI 시스템을 위한 고급 기능을 갖춘 엔터프라이즈 관찰 플랫폼입니다. #### 전제조건 1. **Arize AX 계정**: 가입하세요[app.arize.com](https://app.arize.com/) 2. **공간ID**: 조직의 공간 식별자 3. **API 키**: Arize AX 설정에서 생성 4. **환경 변수**: 자격 증명을 설정하세요 ```bash # Required ARIZE_SPACE_ID=your-space-id ARIZE_API_KEY=your-api-key # Optional ARIZE_PROJECT_NAME=mastra-service ``` #### 제로 구성 설정 환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다. ```typescript 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()], }, }, }), }) ``` #### 명시적 구성 자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨). ```typescript 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 동작을 미세 조정하기 위한 고급 구성을 지원합니다. ### 완전한 구성 ```typescript 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, }, }) ``` ### 일괄 처리 옵션 추적을 일괄 처리하고 내보내는 방법을 제어합니다. ```typescript 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) }) ``` ### 자원 속성 내보낸 모든 범위에 맞춤 속성을 추가합니다. ```typescript 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`를 통해 추가할 수 있습니다. ```ts await agent.generate(input, { tracingOptions: { metadata: { companyId: 'acme-co', tier: 'enterprise', }, }, }) ``` `input`, `output`, `sessionId`, 스레드/사용자 ID, OpenInference ID 같은 예약 필드는 자동으로 제외됩니다. ## OpenInference 의미론적 규칙 이 Exporter는 생성형 AI 애플리케이션을 위한 [OpenInference 의미 체계 규칙](https://github.com/Arize-ai/openinference/tree/main/spec)을 구현하여 서로 다른 Observability 플랫폼에서 표준화된 Trace 구조를 제공합니다. ## 관련된 - [추적 개요](https://mastra.zisheng.pro/ko/docs/observability/tracing/overview) - [피닉스 문서](https://docs.arize.com/phoenix) - [Arize AX 문서](https://docs.arize.com/) - [오픈인퍼런스 사양](https://github.com/Arize-ai/openinference/tree/main/spec)