Files
medreport_mrb2b/packages/monitoring/baselime/src/instrumentation.ts
2025-06-08 16:18:30 +03:00

39 lines
1.2 KiB
TypeScript

/**
* @name registerInstrumentation
* @description This file is used to register Baselime instrumentation for your Next.js application.
*
* Please set the MONITORING_PROVIDER environment variable to 'baselime' to register Baselime instrumentation.
*/
export async function registerInstrumentation() {
if (process.env.ENABLE_MONITORING_INSTRUMENTATION !== 'true') {
return;
}
const serviceName = process.env.INSTRUMENTATION_SERVICE_NAME;
if (!serviceName) {
throw new Error(`
You have set the Baselime instrumentation provider, but have not set the INSTRUMENTATION_SERVICE_NAME environment variable.
Please set the INSTRUMENTATION_SERVICE_NAME environment variable.
`);
}
if (process.env.NEXT_RUNTIME === 'nodejs') {
const { BaselimeSDK, BetterHttpInstrumentation, VercelPlugin } =
await import('@baselime/node-opentelemetry');
const sdk = new BaselimeSDK({
serverless: true,
service: serviceName,
baselimeKey: process.env.NEXT_PUBLIC_BASELIME_KEY,
instrumentations: [
new BetterHttpInstrumentation({
plugins: [new VercelPlugin()],
}),
],
});
sdk.start();
}
}