# Setting Monitoring in Makerkit

> Introducing how Makerkit handles monitoring of performance metrics and exceptions in the Remix Supabase SaaS kit

*Canonical: https://makerkit.dev/docs/remix-supabase-turbo/monitoring/overview*

---

Makerkit provides first-class support for two monitoring providers:

1. Baselime (now part of Cloudflare)
2. Sentry

Makerkit will set up a few things for you out of the box:

1. **Performance Metrics** - Instrumentation using Remix's instrumentation hook
2. **Client exceptions** - Automatically capturing uncaught exceptions on the client
3. **Server exceptions** - Automatically capturing server-side exceptions when using the functions `enhanceAction` and `enhanceRouteHandler`

Additionally, it provides you with the tools to manually capturing exceptions, should you want to.

To set up monitoring in your application, you need to define the two variables below:

```bash
# sentry or baselime
VITE_MONITORING_PROVIDER=

# performance monitoring
MONITORING_INSTRUMENTATION_ENABLED=true
```

1. **Monitoring Provider** - the monitoring provider to use. Based on this variable, Makerkit will provide the relative implementation.
2. **Enable Instrumentation** - if enabled, we report performance metrics to the provider using Remix

For the provider's specific settings, please check the relative documentation.

#### Performance Monitoring

Performance monitoring uses Remix's experimental instrumentation for reporting performance metrics using OpenTelemetry.

NB: Performance monitoring is only enabled for Node.js runtimes. This means you won't see performance metrics in the edge runtime or Cloudflare.
