The monitoring package has been significantly refactored to improve the granularity of error capture. Code from the 'capture-exception.ts' files in different locations have been deleted and replaced by a more unified approach in the 'use-baselime.ts' and 'use-sentry.ts' hooks. The README documentation has also been updated to reflect these changes and provide additional information about error monitoring setup and usage.
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { getMonitoringProvider } from '../get-monitoring-provider';
|
|
import { InstrumentationProvider } from '../monitoring-providers.enum';
|
|
import { ConsoleMonitoringService } from './console-monitoring.service';
|
|
|
|
const MONITORING_PROVIDER = getMonitoringProvider();
|
|
|
|
/**
|
|
* @name getServerMonitoringService
|
|
* @description Get the monitoring service based on the MONITORING_PROVIDER environment variable.
|
|
*/
|
|
export async function getServerMonitoringService() {
|
|
if (!MONITORING_PROVIDER) {
|
|
console.info(
|
|
`No instrumentation provider specified. Returning console service...`,
|
|
);
|
|
|
|
return new ConsoleMonitoringService();
|
|
}
|
|
|
|
switch (MONITORING_PROVIDER) {
|
|
case InstrumentationProvider.Baselime: {
|
|
const { BaselimeServerMonitoringService } = await import(
|
|
'@kit/baselime/server'
|
|
);
|
|
|
|
return new BaselimeServerMonitoringService();
|
|
}
|
|
|
|
case InstrumentationProvider.Sentry: {
|
|
const { SentryServerMonitoringService } = await import(
|
|
'@kit/sentry/server'
|
|
);
|
|
|
|
return new SentryServerMonitoringService();
|
|
}
|
|
|
|
default: {
|
|
throw new Error(
|
|
`Please set the MONITORING_PROVIDER environment variable to register the monitoring instrumentation provider.`,
|
|
);
|
|
}
|
|
}
|
|
}
|