Datadog exporter
Datadog は、LLM Observability 専用機能を備えた包括的な監視プラットフォームです。Datadog exporter は Trace を Datadog の LLM Observability プロダクトに送信し、モデルのパフォーマンス、Token 使用量、会話フローに関するインサイトを提供します。
dd-trace APM も使用していますか?dd-trace APM の自動計装も使用する場合は、代わりに Datadog Bridge を検討してください。Bridge は dd-trace Span をリアルタイムで作成するため、Tool や Processor 内の HTTP 呼び出しとデータベース呼び出しが、親となる Mastra Span の配下に正しくネストされます。exporter 単体では実行完了後に LLM Observability データを送信するため、自動計装された APM Span は request handler にフォールバックします。
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/datadog@latest
pnpm add @mastra/datadog@latest
yarn add @mastra/datadog@latest
bun add @mastra/datadog@latest
設定設定への直接リンク
前提条件前提条件への直接リンク
- Datadog アカウント: LLM Observability を有効にして datadoghq.com で登録する
- API Key: Datadog Organization Settings → API Keys から API key を取得する
- 環境変数: 認証情報を設定する
DD_API_KEY=your-datadog-api-key
DD_LLMOBS_ML_APP=my-llm-app
DD_SITE=datadoghq.com # Optional: defaults to datadoghq.com
DD_ENV=production # Optional: environment name
ゼロコンフィグセットアップゼロコンフィグセットアップへの直接リンク
環境変数を設定すると、設定を渡さずに exporter を使用できます。
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { DatadogExporter } from '@mastra/datadog'
export const mastra = new Mastra({
observability: new Observability({
configs: {
datadog: {
serviceName: 'my-service',
exporters: [new DatadogExporter()],
},
},
}),
})
明示的な設定明示的な設定への直接リンク
認証情報を直接渡すこともできます(環境変数より優先されます)。
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { DatadogExporter } from '@mastra/datadog'
export const mastra = new Mastra({
observability: new Observability({
configs: {
datadog: {
serviceName: 'my-service',
exporters: [
new DatadogExporter({
mlApp: process.env.DD_LLMOBS_ML_APP!,
apiKey: process.env.DD_API_KEY!,
}),
],
},
},
}),
})
設定オプション設定オプションへの直接リンク
完全な設定完全な設定への直接リンク
new DatadogExporter({
// Required settings
mlApp: process.env.DD_LLMOBS_ML_APP!, // Groups traces under this ML app name
apiKey: process.env.DD_API_KEY!, // Required for agentless mode (default)
// Optional settings
site: 'datadoghq.com', // Datadog site (datadoghq.eu, us3.datadoghq.com, etc.)
service: 'my-service', // Service name (defaults to mlApp)
env: 'production', // Environment name
agentless: true, // true = direct HTTPS, false = local Datadog Agent
// Advanced settings
integrationsEnabled: false, // Enable dd-trace auto-instrumentation
// Diagnostic logging
logLevel: 'info', // debug | info | warn | error
})
ローカルの Datadog Agent を使用するローカルの Datadog Agent を使用するへの直接リンク
Datadog Agent をローカルで実行している場合は、直接 HTTPS を使用する代わりに、Agent を経由して Trace をルーティングできます。
new DatadogExporter({
mlApp: process.env.DD_LLMOBS_ML_APP!,
agentless: false, // Use local Datadog Agent
env: 'production',
})
注: Agent mode を使用する場合、API key はローカル Agent の設定から読み取られます。
Span type のマッピングSpan type のマッピングへの直接リンク
Mastra の Span type は、Datadog LLM Observability の Span kind に自動的にマッピングされます。
| Mastra SpanType | Datadog Kind |
|---|---|
AGENT_RUN | agent |
MODEL_GENERATION | workflow |
MODEL_STEP | llm |
TOOL_CALL | tool |
MCP_TOOL_CALL | tool |
WORKFLOW_RUN | workflow |
| その他の Workflow type | task |
GENERIC | task |
その他の、または将来追加される Mastra Span type は、指定がない限り、マッピング時にデフォルトで 'task' になります。
Application Performance MonitoringApplication Performance Monitoringへの直接リンク
ここまでのセクションでは、Mastra の LLM Observability 統合について説明しました。Mastra HTTP server route(request latency、error tracking、service map)を Trace するには、Datadog Application Performance Monitoring(APM)用に dd-trace を直接使用します。
前提条件前提条件への直接リンク
-
Datadog Agent: 同じホスト、またはネットワーク経由でアクセス可能な環境に Datadog Agent をインストールします。Agent は
dd-traceからlocalhost:8126で Trace を受信し、Datadog に転送します。Agent インストールガイドに従ってセットアップしてください。 -
dd-trace パッケージ: プロジェクトに tracing library をインストールします。
- npm
- pnpm
- Yarn
- Bun
npm install dd-tracepnpm add dd-traceyarn add dd-tracebun add dd-trace
APM Trace は常に Datadog Agent を経由します。これは、Agentless mode(Datadog への直接 HTTPS)をサポートする LLM Observability とは異なります。
APM のみAPM のみへの直接リンク
他の import より前に、entry file の先頭で dd-trace を import して初期化します。
import tracer from 'dd-trace'
tracer.init({
service: process.env.DD_SERVICE || 'my-mastra-app',
env: process.env.DD_ENV || 'production',
version: process.env.DD_VERSION,
})
import { Mastra } from '@mastra/core'
export const mastra = new Mastra({
bundler: {
externals: [
'dd-trace',
'@datadog/native-metrics',
'@datadog/native-appsec',
'@datadog/native-iast-taint-tracking',
'@datadog/pprof',
],
},
})
tracer metadata の環境変数を設定します。
DD_SERVICE=my-mastra-app
DD_ENV=production
DD_VERSION=1.0.0
dd-trace は、Mastra の server adapter がサポートするものを含め、一般的な HTTP framework を自動計装します。受信 request、送信 HTTP 呼び出し、database query は、Datadog で APM Trace として表示されます。
APM と LLM ObservabilityAPM と LLM Observabilityへの直接リンク
Mastra インスタンスを作成する前に、dd-trace を import して初期化します。DatadogExporter は既存の tracer を検出して再初期化をスキップし、APM セットアップに LLM Observability を追加します。
import tracer from 'dd-trace'
tracer.init({
service: process.env.DD_SERVICE || 'my-mastra-app',
env: process.env.DD_ENV || 'production',
version: process.env.DD_VERSION,
})
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { DatadogExporter } from '@mastra/datadog'
export const mastra = new Mastra({
observability: new Observability({
configs: {
datadog: {
serviceName: 'my-mastra-app',
exporters: [
new DatadogExporter({
mlApp: process.env.DD_LLMOBS_ML_APP!,
apiKey: process.env.DD_API_KEY!,
}),
],
},
},
}),
bundler: {
externals: [
'dd-trace',
'@datadog/native-metrics',
'@datadog/native-appsec',
'@datadog/native-iast-taint-tracking',
'@datadog/pprof',
],
},
})
DD_SERVICE=my-mastra-app
DD_ENV=production
DD_VERSION=1.0.0
DD_API_KEY=your-datadog-api-key
DD_LLMOBS_ML_APP=my-llm-app
server route は APM Trace、LLM 呼び出しは LLM Observability Span として表示され、すべて Datadog の同じ Service にまとめられます。
他のすべての module より前に dd-trace を import して初期化してください。これにより、自動計装で HTTP、database、framework library を読み込み時にパッチできます。
トラブルシューティングトラブルシューティングへの直接リンク
Native module の ABI 不一致Native module の ABI 不一致への直接リンク
次のようなエラーが表示される場合:
Error: No native build was found for runtime=node abi=137 platform=linuxglibc arch=x64
これは、dd-trace の native module と Node.js バージョンの互換性に問題があることを示します。これらの native module は任意であり、performance monitoring 機能を提供します。
解決方法:
-
Node.js 22.x を使用する: Native module は Node.js 22.x との互換性が最も高くなっています。
-
Native module の警告を無視する: Native module(
@datadog/native-metrics、@datadog/native-appsecなど)は任意です。読み込みに失敗しても、core tracing 機能は引き続き動作します。
Bundler の externals 設定Bundler の externals 設定への直接リンク
esbuild、webpack、または Mastra CLI bundler などの bundler を使用する場合、dd-trace とその依存関係を external として指定する必要がある場合があります。
export const mastra = new Mastra({
bundler: {
externals: [
'dd-trace',
'@datadog/native-metrics',
'@datadog/native-appsec',
'@datadog/native-iast-taint-tracking',
'@datadog/pprof',
],
},
})