feat: setup opentel
This commit is contained in:
@@ -66,10 +66,15 @@ const config = {
|
||||
},
|
||||
},
|
||||
},
|
||||
serverExternalPackages: ["pino"],
|
||||
serverExternalPackages: [
|
||||
"pino",
|
||||
"@opentelemetry/sdk-node",
|
||||
"@opentelemetry/auto-instrumentations-node",
|
||||
"@opentelemetry/exporter-trace-otlp-http",
|
||||
],
|
||||
|
||||
experimental: {
|
||||
// instrumentationHook: true,
|
||||
instrumentationHook: true,
|
||||
swcPlugins: [["@lingui/swc-plugin", {}]],
|
||||
},
|
||||
|
||||
|
||||
@@ -34,6 +34,10 @@
|
||||
"@lingui/macro": "^5.3.2",
|
||||
"@lingui/react": "^5.3.2",
|
||||
"@novu/api": "^3.11.0",
|
||||
"@opentelemetry/api": "^1.9.0",
|
||||
"@opentelemetry/auto-instrumentations-node": "^0.71.0",
|
||||
"@opentelemetry/exporter-trace-otlp-http": "^0.213.0",
|
||||
"@opentelemetry/sdk-node": "^0.213.0",
|
||||
"@t3-oss/env-nextjs": "^0.11.1",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@tanstack/react-query": "catalog:",
|
||||
|
||||
32
apps/web/src/instrumentation.ts
Normal file
32
apps/web/src/instrumentation.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
export async function register() {
|
||||
if (
|
||||
process.env.NEXT_RUNTIME !== "nodejs" ||
|
||||
process.env.NEXT_PUBLIC_KAN_ENV !== "cloud" ||
|
||||
!process.env.AXIOM_TOKEN ||
|
||||
!process.env.AXIOM_DATASET
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { NodeSDK } = await import("@opentelemetry/sdk-node");
|
||||
const { OTLPTraceExporter } = await import("@opentelemetry/exporter-trace-otlp-http");
|
||||
const { getNodeAutoInstrumentations } = await import("@opentelemetry/auto-instrumentations-node");
|
||||
|
||||
const sdk = new NodeSDK({
|
||||
serviceName: "kan",
|
||||
traceExporter: new OTLPTraceExporter({
|
||||
url: "https://api.axiom.co/v1/traces",
|
||||
headers: {
|
||||
Authorization: `Bearer ${process.env.AXIOM_TOKEN}`,
|
||||
"X-Axiom-Dataset": process.env.AXIOM_DATASET,
|
||||
},
|
||||
}),
|
||||
instrumentations: [
|
||||
getNodeAutoInstrumentations({
|
||||
"@opentelemetry/instrumentation-fs": { enabled: false },
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
sdk.start();
|
||||
}
|
||||
Reference in New Issue
Block a user