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

    LanguageFrameworks
    PythonFastAPI, Starlette, Flask, Django, Litestar
    TypeScriptExpress, Fastify, Koa, Hono, Hapi, NestJS

    EvalKit is built by Syntropylabs. Published on PyPI and npm.