Skip to main content
OpenTelemetry (OTel) を使用すると、Weave で Vercel AI SDK の Call をトレースできます。Vercel AI SDK は、Next.js、Nuxt、SvelteKit などのフレームワークをサポートし、AI を活用したアプリケーションを構築するための TypeScript ツールキットです。experimental_telemetry オプションを通じて、OpenTelemetry を組み込みでサポートしています。 このガイドでは、Vercel AI SDK から Weave にトレースを送信するように OTel を設定する方法を説明します。AI SDK は、Next.js と組み合わせて使用することも、スタンドアロンの Node.js アプリケーションとして使用することもできます。 Weave での OTel トレースの詳細については、Send OTel traces to Weave を参照してください。

前提条件

このガイドの Next.js と Node.js の例では、どちらも同じ依存関係が必要です。まず、以下を行います。
  1. 次の Vercel および OTel ライブラリをインストールします。
  2. 次の環境変数を設定します。
    W&B APIキーは User Settings から取得できます。

Next.js 向けに OTel トレースを設定する

このセクションでは、Next.js アプリで Weave を設定する方法を説明します。この例にはアプリ全体は含まれておらず、インストルメンテーションの設定と、Vercel AI SDK の関数でインストルメンテーションを呼び出す方法のみを示しています。この場合は、OpenAI をシンプルに呼び出す例です。

インストルメンテーションを設定する

Next.js アプリケーションでは、OTel の設定に instrumentation.ts ファイルを使用します。このファイルはサーバーの起動時に 1 回だけ実行され、AI SDK が使用するトレーサープロバイダーを設定します。 Weave を Vercel の OTel 機能と統合するには、project ルートに instrumentation.ts ファイルを作成し、次のコードを追加します。その際、resourceFromAttributes() 関数のチーム名と project 名を更新してください。
instrumentation.ts
これにより、Weave の OTel エンドポイントにトレースデータを送信するよう設定された OTLP エクスポーターが作成され、W&B APIキーを使用して認証されます。

関数でテレメトリーを設定する

インストルメンテーションを追加したら、任意の AI SDK の関数呼び出しで Vercel の experimental_telemetry オプションを使用して、OTel スパンを生成します。
route.ts
テレメトリーを有効にしたすべての generateText Call で、Weave にエクスポートされる OTel スパンが生成されます。

Node.js 向けに OTel トレースを設定する

スタンドアロンの Node.js アプリケーション (Next.js を使用しない場合) では、AI SDK を Call する前に、エントリファイルの先頭でトレーサープロバイダーを設定します。 前提条件を満たしたら、追加の設定なしでこの例を run し、スパンを生成できます。
test-app.ts
BatchSpanProcessor は スパン を非同期でフラッシュします。スタンドアロンのスクリプト、サーバーレス関数、CLI ツールのような短命なプロセスでは、すべての スパン が Weave に送信されるよう、プロセスが終了する前に provider.shutdown() を呼び出してください。長時間稼働するサーバー (instrumentation.ts 経由で起動した Next.js の Dev サーバーなど) では、これは不要です.