Integrations
What the JavaScript SDK records in each framework and library, with OpenTelemetry's instrumentations it brings along.
Tracepanel for JavaScript records through OpenTelemetry's instrumentations, which come with the package. You don't install or configure them. A library your app doesn't use is never loaded.
Frameworks
| Framework | What a trace gets |
|---|---|
| Express | Each request with its route, such as /api/books/:id, and the handler that served it. |
| NestJS | The controller method as the handler, such as BooksController.list, and the records of Nest's Logger. An HttpException below 500 is the response, not an error. |
| Next.js | Each page and route handler, named by its route, such as /api/books/[id]. |
| Nuxt | Each request named by its route, and the errors h3 answers with a 500. |
| Bun | Each route of Bun.serve under its pattern, or any fetch handler wrapped in withTracepanel(). |
See Installation to add each one.
Libraries
| Library | What Tracepanel records |
|---|---|
pg, mysql2 | Each SQL statement, with the line of your code that ran it, and EXPLAIN in the console. Drizzle, Knex, Sequelize, TypeORM and Prisma's driver adapters run on these drivers, so their SQL shows too. |
| Prisma | Its operations, as steps over their SQL. |
ioredis, redis | Each Redis command, with its own N+1 and duplicates. |
| MongoDB | Each command, with its own N+1 and duplicates. |
fetch(), node:http | Each outgoing HTTP call, from fetch() and from clients on node:http, such as axios. |
| BullMQ | Each job a worker runs, as a task, and each job the app adds, as a step. |
console | Each call made during a request, as a log record of the request. |
An error thrown in a handler comes with its stack, and your frames with their source.
Calls between apps
A request that carries a W3C traceparent continues the caller's trace, and
the agent links the two. Calls your app makes carry it too, so the app they
reach links back. See
Traces across apps.
Pages in the browser
The pages of a single-page app record in the browser, with the Vite plugin or
record(). See Pages in the browser.