Files
web/packages/trpc/lib/middlewares/durationMiddleware/index.ts
Joakim Jäderberg b1d7fbad88 Merged in chore/upgrade-sentry (pull request #3191)
feat: upgrade sentry and use metrics

* feat: upgrade sentry and use metrics

* remove ununsed deps

* rename span

* .


Approved-by: Linus Flood
2025-11-20 13:24:53 +00:00

29 lines
704 B
TypeScript

import * as Sentry from "@sentry/nextjs"
import { middleware } from "../../."
import { flattenInput } from "./flattenInput"
export const durationMiddleware = middleware(
async ({ path, type, next, getRawInput }) => {
const perf = performance.now()
const res = await next()
const duration = performance.now() - perf
const input = await getRawInput()
const primitiveInput = flattenInput(input)
Sentry.metrics.distribution("trpc", duration, {
unit: "milliseconds",
attributes: {
path,
type,
status: res.ok ? "ok" : "error",
error: res.ok ? undefined : res.error.code,
...primitiveInput,
},
})
return res
}
)