Arthur exporter
Arthur は、オープンソースの Arthur Engine を通じて、AI アプリケーション向けの Observability および評価プラットフォームを提供します。Arthur exporter は、OpenTelemetry と OpenInference のセマンティック規約を使用して Trace を送信します。
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/arthur@latest
pnpm add @mastra/arthur@latest
yarn add @mastra/arthur@latest
bun add @mastra/arthur@latest
設定設定への直接リンク
前提条件前提条件への直接リンク
- Arthur Engine インスタンス: Docker Compose デプロイガイドに従って Arthur Engine を起動する
- API key:
http://localhost:3030の Arthur Engine UI から API key を生成する - Task ID(任意): Trace を特定の Task にルーティングするために Task を作成する
Task のルーティングTask のルーティングへの直接リンク
Arthur Engine は、次の2つの方法で Trace を Task に関連付けます。
- Service name を使用: Observability 設定で
serviceNameを設定します。Arthur Engine は、その名前と一致する Task に Trace を自動的にルーティングし、必要な場合は Task を作成します。 - Task ID を使用: 既存の
taskIdを exporter に渡し、Trace を特定の Task に直接送信します。
両方を指定した場合は、taskId が優先されます。
環境変数環境変数への直接リンク
.env
# Required
ARTHUR_API_KEY=your-api-key
ARTHUR_BASE_URL=http://localhost:3030
# Optional - route traces to a pre-existing task by ID
ARTHUR_TASK_ID=your-task-id
ゼロコンフィグセットアップゼロコンフィグセットアップへの直接リンク
環境変数を設定すると、設定を渡さずに exporter を使用できます。
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArthurExporter } from '@mastra/arthur'
export const mastra = new Mastra({
observability: new Observability({
configs: {
arthur: {
serviceName: 'my-service',
exporters: [new ArthurExporter()],
},
},
}),
})
明示的な設定明示的な設定への直接リンク
認証情報を直接渡すこともできます(環境変数より優先されます)。
src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { ArthurExporter } from '@mastra/arthur'
export const mastra = new Mastra({
observability: new Observability({
configs: {
arthur: {
serviceName: 'my-service',
exporters: [
new ArthurExporter({
apiKey: process.env.ARTHUR_API_KEY!,
endpoint: process.env.ARTHUR_BASE_URL!,
taskId: process.env.ARTHUR_TASK_ID,
}),
],
},
},
}),
})
設定オプション設定オプションへの直接リンク
完全な設定完全な設定への直接リンク
new ArthurExporter({
// Arthur Configuration
apiKey: 'your-api-key', // Required
endpoint: 'http://localhost:3030', // Required
taskId: 'your-task-id', // Optional
// 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,
},
})
カスタム metadataカスタム metadataへの直接リンク
予約されていない Span 属性は、OpenInference の metadata ペイロードにシリアライズされ、Arthur に表示されます。これらは tracingOptions.metadata で追加できます。
await agent.generate(input, {
tracingOptions: {
metadata: {
companyId: 'acme-co',
tier: 'enterprise',
},
},
})
input、output、sessionId、Thread/User ID、OpenInference ID などの予約フィールドは、自動的に除外されます。
OpenInference のセマンティック規約OpenInference のセマンティック規約への直接リンク
この exporter は、生成 AI アプリケーション向けの OpenInference Semantic Conventions を実装し、異なる Observability プラットフォーム間で標準化された Trace 構造を提供します。