chore: Adding OTEL for New Relic tracing
parent
91af873db9
commit
7570a7bab2
|
@ -137,6 +137,9 @@ const nextConfig = {
|
|||
eslint: {
|
||||
ignoreDuringBuilds: !!process.env.CI,
|
||||
},
|
||||
experimental: {
|
||||
instrumentationHook: true,
|
||||
},
|
||||
transpilePackages: [
|
||||
"@calcom/app-store",
|
||||
"@calcom/core",
|
||||
|
|
|
@ -92,6 +92,12 @@
|
|||
"vitest-mock-extended": "^1.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "^1.4.1",
|
||||
"@opentelemetry/exporter-trace-otlp-grpc": "^0.38.0",
|
||||
"@opentelemetry/resources": "^1.12.0",
|
||||
"@opentelemetry/sdk-trace-base": "^1.12.0",
|
||||
"@opentelemetry/semantic-conventions": "^1.12.0",
|
||||
"@vercel/otel": "^0.2.0",
|
||||
"city-timezones": "^1.2.1",
|
||||
"eslint": "^8.34.0",
|
||||
"lucide-react": "^0.171.0",
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
import { trace, context } from "@opentelemetry/api";
|
||||
import { registerOTel } from "@vercel/otel";
|
||||
|
||||
registerOTel("cal-app-" + process.env.VERCEL_ENV);
|
||||
|
||||
export const tracer = trace.getTracer("cal-app-tracer");
|
||||
export { context };
|
|
@ -1,10 +1,12 @@
|
|||
import { tracer, context } from "../../../lib/server/OTEL-initializer";
|
||||
import { middleware } from "../trpc";
|
||||
|
||||
const perfMiddleware = middleware(async ({ path, type, next }) => {
|
||||
performance.mark("Start");
|
||||
const span = tracer.startSpan("tRPC." + path, undefined, context.active());
|
||||
const ms = Math.floor(Math.random() * 1000);
|
||||
span.setAttribute(path, ms);
|
||||
const result = await next();
|
||||
performance.mark("End");
|
||||
performance.measure(`[${result.ok ? "OK" : "ERROR"}][$1] ${type} '${path}'`, "Start", "End");
|
||||
span.end();
|
||||
return result;
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue