Adapters
autotel-adapters provides easy-to-use ergonomics (withAutotel(), useLogger(), parseError()) while keeping one trace-native stack.
Available Adapters
Section titled “Available Adapters”| Adapter | Import |
| ---------- | ----------------------------- |
| Hono | autotel-adapters/hono |
| TanStack | autotel-tanstack |
| Next.js | autotel-adapters/next |
| Nitro | autotel-adapters/nitro |
| Cloudflare | autotel-adapters/cloudflare |
| Custom | autotel-adapters/core |
withAutotel vs useLogger
Section titled “withAutotel vs useLogger”withAutotel() — use when you have NO existing autotel middleware. Creates a span and injects a request logger:
import { withAutotel, useLogger } from 'autotel-adapters/next';
export const POST = withAutotel(async (request) => { const log = useLogger(request); log.set({ feature: 'checkout' }); return Response.json({ ok: true });});useLogger() alone — use when middleware already creates the span (avoids duplicate spans):
import { otel } from 'autotel-hono';import { useLogger } from 'autotel-adapters/hono';
app.use('*', otel());app.get('/orders/:id', (c) => { const log = useLogger(c); log.set({ route: c.req.path }); return c.json({ ok: true });});Next.js
Section titled “Next.js”import { withAutotel, useLogger, parseError } from 'autotel-adapters/next';
export const POST = withAutotel(async (request: Request) => { const log = useLogger(request); log.set({ feature: 'checkout' });
try { return Response.json({ ok: true }); } catch (error) { const parsed = parseError(error); log.set({ error_status: parsed.status, error_why: parsed.why }); throw error; }});Build Your Own
Section titled “Build Your Own”import { createUseLogger } from 'autotel-adapters/core';
const useLogger = createUseLogger<{ requestId?: string }>({ adapterName: 'custom-framework', enrich: (ctx) => ({ request_id: ctx.requestId }),});Examples
Section titled “Examples”example-nextjs— Next.js withautotel-adapters/nextandparseError()for client-side error handling.example-nestjs— NestJS with auto-instrumentation and manualtrace()in services.example-fastify— Fastify with HTTP and Fastify auto-instrumentation.