feat: add optional Langfuse observability integration

- Add session tracking with unique sessionId per conversation
- Add user tracking via IP address (x-forwarded-for header)
- Make telemetry conditional - only enabled if LANGFUSE_PUBLIC_KEY is set
- Add environment variable validation in instrumentation.ts
- Add sessionId validation (type check + 200 char limit)
- Update env.example with Langfuse configuration docs
- Remove unused langfuse-vercel and @vercel/otel packages
This commit is contained in:
dayuan.jiang
2025-12-04 00:13:42 +09:00
parent d84edb529c
commit 30b598d960
6 changed files with 265 additions and 138 deletions

View File

@@ -16,24 +16,21 @@
"@ai-sdk/google": "^2.0.0",
"@ai-sdk/openai": "^2.0.19",
"@ai-sdk/react": "^2.0.22",
"@langfuse/otel": "^4.4.4",
"@next/third-parties": "^16.0.6",
"@openrouter/ai-sdk-provider": "^1.2.3",
"@opentelemetry/api-logs": "^0.208.0",
"@opentelemetry/instrumentation": "^0.208.0",
"@opentelemetry/sdk-logs": "^0.208.0",
"@opentelemetry/sdk-trace-node": "^2.2.0",
"@radix-ui/react-dialog": "^1.1.6",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-slot": "^1.1.2",
"@radix-ui/react-tooltip": "^1.1.8",
"@vercel/analytics": "^1.5.0",
"@vercel/otel": "^2.1.0",
"@xmldom/xmldom": "^0.9.8",
"ai": "^5.0.89",
"base-64": "^1.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"jsdom": "^26.0.0",
"langfuse-vercel": "^3.38.6",
"lucide-react": "^0.483.0",
"next": "15.2.3",
"ollama-ai-provider-v2": "^1.5.4",