Langfuse を Sentry統合で導入した際に料金が大変なことになった話
こんにちは。 PeopleX エンジニアの竹内です。
現在、私が担当しているプロダクトでは LLM のトレーシングや評価に Langfuse を採用しています。
OpenTelemetry の仕組みにより、上流に設置すると枝葉の関数やメソッドで LLM を実行した際のログが簡単に取れたり、そのトレース結果に対して評価を回していくことができるのは大変便利です。
弊社ではエラートラッキング・パフォーマンス分析のツールに Sentry を採用しています。Langfuseと同じく OpenTelemetry を用いたツールなので、同じ OpenTelemetry のインスタンスを使い回すことができます。
想定外の料金使用料通知が届く
年末、弊社CTOからこんなSlackが届きました。

弊社ではLangfuseを導入しているプロダクトはいくつかあるのですが、いずれもこの従量課金額に到達するほど大量の検証というものをしていた記憶はありません。
Dashboardで確認したところ、以下のような統計が表示されました。

上位2つの Trace は LLM 呼び出しに関係のないものですが、ご覧の通り稼働サーバーに対して定期的にアクセスが来るものにまで Trace が紐づけられてしまっています。
LLMに関係した呼び出しの Span のみに絞る
こちらのドキュメントを確認し、Sentry と併用した導入方法について注意事項などを確認したところ、以下の記載とともに2つの対応策が書いてありました。
Sentry’s
tracesSampleRateapplies to all traces, including those going to Langfuse.
- tracesSampleRate を絞る方法
- Langfuse Span に絞る方法
前者は単純に Tracing として送る頻度を 0 ~ 100% の割合に絞る機能のため、関係のない Trace も送られる状況は変わりません。
そのため、後者の「Langfuse Span に絞る方法」を採用しました。
langfuse-sdk と AI SDK(Vercel)に関する呼び出しのみ Langfuse に送る
ShouldExportSpan 型のオブジェクトを用意し、エクスポートする Instrumentation Scope を指定します。
new LangfuseSpanProcessor({ shouldExportSpan: ({ otelSpan }) => ["langfuse-sdk", "ai"].includes(otelSpan.instrumentationScope.name)})
もしこれらの他に絞りたいものがある場合、Langfuse のWeb管理画面から metadata.scope.name を辿ることで見つけることができます。
用意した shouldExportSpan は LangfuseSpanProcessor に渡せるのでこれでフィルタすることができます。
return new LangfuseSpanProcessor({
baseUrl: process.env.LANGFUSE_BASE_URL,
publicKey: process.env.LANGFUSE_PUBLIC_KEY,
secretKey: process.env.LANGFUSE_SECRET_KEY,
environment: process.env.APP_ENV ?? "local",
shouldExportSpan,
});
これで、しばらく運用した際に Trace の数が減少していることが確認できました。

まだ GET /healthと POST /graphql が残っていますが、設定してから1ヶ月経過しきっていないため 1ヶ月区切りでみたときに対象に入っているためです。
おわりに
複数プロダクトで Langfuse を導入しているため、導入方法も他プロダクトのものを見よう見まねで入れた結果、ドキュメントを深く確認していなかったために気づくのが遅れたのかなと思います。
また、Langfuse 側でよしなにフィルタしてくれているものと勝手に思い込んでしまっていましたが、自分達で調整すべき部分もあることがわかったのは学びかなと思います。
Langfuse を用いたLLMのトレーシングは精度向上やエラーの検知に大変便利なため、今後も活用していければと思います。
参考
/以上
PeopleXのテックブログです。採用情報:hrmos.co/pages/peoplex/jobs 対話型AI面接「PeopleX AI面接」、エンプロイーサクセスPF「PeopleWork」、人事業務自動化AIエージェント「HR Operator」など、AIプロダクト多数開発しています。
Discussion