跳到主要内容
非官方简体中文翻译,内容版权归 Mastra 所有,遵循 Apache-2.0 许可。

ArthurExporter

Sends Tracing data to Arthur Engine using OpenTelemetry and OpenInference semantic conventions.

Constructor
Constructor的直接链接

new ArthurExporter(config: ArthurExporterConfig)

ArthurExporterConfig
arthurexporterconfig的直接链接

type ArthurExporterConfig = Omit<OtelExporterConfig, 'provider' | 'exporter'> & {
apiKey?: string
endpoint?: string
taskId?: string
headers?: Record<string, string>
}

Inherits from OtelExporterConfig (excluding provider and exporter), which includes:

  • timeout?: number - Export timeout in milliseconds (default: 30000)
  • batchSize?: number - Number of spans per batch (default: 512)
  • logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error' - Log level (default: WARN)
  • resourceAttributes?: Record<string, any> - Custom resource attributes

Metadata passthrough
Metadata passthrough的直接链接

Non-reserved span attributes are serialized into the OpenInference metadata payload. Add them via tracingOptions.metadata (e.g., companyId, tier). Reserved fields such as input, output, sessionId, thread/user IDs, and OpenInference IDs are excluded automatically.

Methods
Methods的直接链接

exportTracingEvent
exporttracingevent的直接链接

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

Exports a tracing event to the configured endpoint.

export
export的直接链接

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

Batch exports spans using OpenTelemetry with OpenInference semantic conventions.

flush
flush的直接链接

async flush(): Promise<void>

Force flushes any buffered spans to the configured endpoint without shutting down the exporter. Useful in serverless environments where you need to ensure spans are exported before the runtime terminates.

shutdown
shutdown的直接链接

async shutdown(): Promise<void>

Flushes pending data and shuts down the client.

Usage
Usage的直接链接

Zero-Config (using environment variables)
Zero-Config (using environment variables)的直接链接

import { ArthurExporter } from '@mastra/arthur'

// Set ARTHUR_API_KEY and ARTHUR_BASE_URL (optionally ARTHUR_TASK_ID)
const exporter = new ArthurExporter()

Explicit Configuration
Explicit Configuration的直接链接

import { ArthurExporter } from '@mastra/arthur'

const exporter = new ArthurExporter({
apiKey: process.env.ARTHUR_API_KEY!,
endpoint: 'http://localhost:3030',
taskId: process.env.ARTHUR_TASK_ID, // Optional
})

OpenInference semantic conventions
openinference-semantic-conventions的直接链接

The ArthurExporter implements OpenInference Semantic Conventions for generative AI applications, providing standardized trace structure across different observability platforms.

Tags support
Tags support的直接链接

The ArthurExporter supports trace tagging for categorization and filtering. Tags are only applied to root spans and are mapped to the native OpenInference tag.tags semantic convention.

Usage
Usage的直接链接

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

How Tags Are Stored
How Tags Are Stored的直接链接

Tags are stored using the OpenInference tag.tags attribute:

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