Custom Monitoring Provider
How to extend the repo's monitoring layer with your own provider.
Only Sentry is registered by default, but the monitoring layer is extensible.
1. Add the Provider Name
Update the provider enum:
packages/monitoring/api/src/get-monitoring-provider.ts
const MONITORING_PROVIDERS = [ 'sentry', 'my-provider', '',] as const;2. Register the Client Provider
Add a client provider component registration:
packages/monitoring/api/src/components/provider.tsx
monitoringProviderRegistry.register('my-provider', async () => { const { MyProvider } = await import('@kit/my-monitoring/provider'); return { default: function Wrapper({ children }: React.PropsWithChildren) { return <MyProvider>{children}</MyProvider>; }, };});3. Register the Server Service
Add the server-side service:
packages/monitoring/api/src/services/get-server-monitoring-service.ts
serverMonitoringRegistry.register('my-provider', async () => { const { MyMonitoringService } = await import('@kit/my-monitoring'); return new MyMonitoringService();});4. Configure the Environment
NEXT_PUBLIC_MONITORING_PROVIDER=my-providerNotes
- The repo is ESM. Use
import, notrequire. - If the provider is not registered in both places, the client/server experience will diverge.
- Leaving the env var empty keeps the console fallback.