Monitoring
Tracing with Next.js
Start tracing your Next.js app.
1
Install Baserun SDK
2
Generate an API key
Create an account at https://app.baserun.ai/sign-up. Then generate an API key for your project in the settings tab and set it as an environment variable.
export BASERUN_API_KEY="your_api_key_here"
3
Initialize baserun
You need to initialize Baserun in a body of every request handler where you want to use it.
your-project/instrumentation.ts
export const POST = async (req: any) => {
await baserun.init()
// your request handler code
}
Example
In this example, we’re using Vercel’s ai npm package to stream the result of an OpenAI chat completion to the client.
Note, that Baserun doesn’t support export const runtime = "edge";
, we we’re keeping this in an ordinary Lambda function deployed by Vercel.
./app/api/chat/route.ts
import OpenAI from 'openai'
import { OpenAIStream, StreamingTextResponse } from 'ai'
import { baserun } from 'baserun'
const openai = new OpenAI()
export const POST = async (req: any) => {
await baserun.init()
const stream = baserun.trace(async () => {
const { messages } = await req.json()
const response = await openai.chat.completions.create({
model: "gpt-4",
stream: true,
messages,
})
return OpenAIStream(response)
}, "chat route")
return new StreamingTextResponse(await stream())
}
Full example
You can check out a full example on how to use Baserun with Next.js here.