トレーシング
MastraはアプリケーションのトレーシングとモニタリングのためにOpenTelemetryプロトコル(OTLP)をサポートしています。テレメトリが有効になっている場合、Mastraはエージェント操作、LLM連携、ツール実行、インテグレーション呼び出し、ワークフロー実行、データベース操作などのすべてのコアプリミティブを自動的にトレースします。テレメトリデータは任意のOTELコレクターにエクスポートできます。
基本設定
テレメトリを有効にする簡単な例を示します:
mastra.config.ts
export const mastra = new Mastra({
// ... other config
telemetry: {
serviceName: "my-app",
enabled: true,
sampling: {
type: "always_on",
},
export: {
type: "otlp",
endpoint: "http://localhost:4318", // SigNoz local endpoint
},
},
});
設定オプション
テレメトリ設定は以下のプロパティを受け付けます:
type OtelConfig = {
// トレースでサービスを識別する名前(オプション)
serviceName?: string;
// テレメトリの有効/無効(デフォルトはtrue)
enabled?: boolean;
// サンプリングするトレースの数を制御
sampling?: {
type: "ratio" | "always_on" | "always_off" | "parent_based";
probability?: number; // 比率サンプリング用
root?: {
probability: number; // 親ベースのサンプリング用
};
};
// テレメトリデータの送信先
export?: {
type: "otlp" | "console";
endpoint?: string;
headers?: Record<string, string>;
};
};
詳細についてはOtelConfig リファレンスドキュメントを参照してください。
環境変数
環境変数を通じてOTLPエンドポイントとヘッダーを設定できます:
.env
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_HEADERS=x-api-key=your-api-key
そして設定では:
mastra.config.ts
export const mastra = new Mastra({
// ... other config
telemetry: {
serviceName: "my-app",
enabled: true,
export: {
type: "otlp",
// エンドポイントとヘッダーは環境変数から取得されます
},
},
});
例:SigNoz連携
SigNoz でのトレースされたエージェントインタラクションの例です:

その他のサポートされているプロバイダー
サポートされている監視プロバイダーの完全なリストとその設定の詳細については、監視プロバイダーリファレンスを参照してください。
Next.js固有のトレーシング手順
Next.jsを使用している場合は、3つの追加設定手順があります:
next.config.ts
で計測フックを有効にする- Mastraテレメトリ設定を構成する
- OpenTelemetryエクスポーターをセットアップする
実装の詳細については、Next.jsトレーシングガイドを参照してください。