Skip to Content
ドキュメント可観測性Next.js トレース

Next.js Tracing

Next.jsでOpenTelemetryトレーシングを有効にするには、追加の設定が必要です。

ステップ1: Next.js設定

まず、Next.js設定でinstrumentationフックを有効にします:

next.config.ts
import type { NextConfig } from "next"; const nextConfig: NextConfig = { experimental: { instrumentationHook: true, // Not required in Next.js 15+ }, }; export default nextConfig;

ステップ2: Mastra設定

Mastraインスタンスを設定します:

mastra.config.ts
import { Mastra } from "@mastra/core"; export const mastra = new Mastra({ // ... other config telemetry: { serviceName: "your-project-name", enabled: true, }, });

ステップ3: プロバイダーの設定

Next.jsを使用している場合、OpenTelemetryインストルメンテーションの設定には2つのオプションがあります:

オプション1: カスタムエクスポーターの使用

プロバイダー間で動作するデフォルトは、カスタムエクスポーターを設定することです:

  1. 必要な依存関係をインストールします(Langfuseを使用した例):
npm install @opentelemetry/api langfuse-vercel
  1. instrumentationファイルを作成します:
instrumentation.ts
import { NodeSDK, ATTR_SERVICE_NAME, resourceFromAttributes, } from "@mastra/core/telemetry/otel-vendor"; import { LangfuseExporter } from "langfuse-vercel"; export function register() { const exporter = new LangfuseExporter({ // ... Langfuse config }); const sdk = new NodeSDK({ resource: resourceFromAttributes({ [ATTR_SERVICE_NAME]: "ai", }), traceExporter: exporter, }); sdk.start(); }

オプション2: VercelのOtel設定の使用

Vercelにデプロイする場合は、VercelのOpenTelemetry設定を使用できます:

  1. 必要な依存関係をインストールします:
npm install @opentelemetry/api @vercel/otel
  1. プロジェクトのルート(またはsrcフォルダを使用している場合はその中)にinstrumentationファイルを作成します:
instrumentation.ts
import { registerOTel } from "@vercel/otel"; export function register() { registerOTel({ serviceName: "your-project-name" }); }

まとめ

この設定により、Next.jsアプリケーションとMastra操作でOpenTelemetryトレーシングが有効になります。

詳細については、以下のドキュメントを参照してください: