Web Frameworks
One line of middleware turns each incoming request into a root trace, with everything inside nested under it.
Python
# FastAPI / Starlette
app.add_middleware(evalkit.EvalKitMiddleware) # Starlette: EvalKitStarletteMiddleware
# Flask
evalkit.instrument_flask(app)
# Django — in settings.py MIDDLEWARE add:
# "evalkit.EvalKitDjangoMiddleware"
# Litestar
app = Litestar(route_handlers=[...], middleware=[evalkit.create_litestar_middleware()])TypeScript
app.use(evalkit.expressMiddleware()); // Express
await app.register(evalkit.fastifyPlugin()); // Fastify
app.use(evalkit.koaMiddleware()); // Koa
app.use(evalkit.honoMiddleware()); // Hono
await server.register(evalkit.hapiPlugin()); // Hapi
app.useGlobalInterceptors(evalkit.createNestjsInterceptor()); // NestJS
// NestJS also has enableNestjsAutoTrace(app) for full APM — see the TypeScript SDK page.Support matrix
| Language | Frameworks |
|---|---|
| Python | FastAPI, Starlette, Flask, Django, Litestar |
| TypeScript | Express, Fastify, Koa, Hono, Hapi, NestJS |