# Sentry Integration for Managing API This document describes how Sentry is integrated into the Managing API for error monitoring and performance tracking. ## Setup Sentry has been integrated into the Managing API using the official `Sentry.AspNetCore` package (version 5.5.1). The integration follows the recommended approach using `WebHost.UseSentry()` in Program.cs: ```csharp // In Program.cs builder.WebHost.UseSentry(); ``` This approach automatically picks up Sentry configuration from appsettings.json and environment variables. It's the official recommended method for ASP.NET Core applications. The integration captures: - Unhandled exceptions - HTTP request information - Performance metrics - Custom errors and events - User information and PII (when SendDefaultPii is enabled) ## Configuration Sentry is configured through `appsettings.json`. Here are the available settings: ```json "Sentry": { "Dsn": "YOUR_SENTRY_DSN", "MinimumEventLevel": "Error", "SendDefaultPii": false, "MaxBreadcrumbs": 50, "SampleRate": 1.0, "TracesSampleRate": 0.2, "Debug": false } ``` ### Required Settings - `Dsn`: Your Sentry project's Data Source Name (required). This should be obtained from your Sentry project settings. ### Optional Settings - `MinimumEventLevel`: Minimum log level that triggers an event to be sent to Sentry (default: Error) - `SampleRate`: Percentage of errors to send to Sentry (1.0 = 100%) - `TracesSampleRate`: Percentage of transactions to send to Sentry (0.2 = 20%) - `Debug`: Enable debug mode for Sentry SDK (set to true in Development environment) ## Environment Configuration Each environment can have specific Sentry settings: - Development: Uses settings from `appsettings.Development.json` (sampling rate set to 100% for easy testing) - Production: Uses settings from `appsettings.Production.json` ## Custom Error Tracking You can manually track errors and events using the `SentrySdk` class: ```csharp try { // Your code } catch (Exception ex) { SentrySdk.CaptureException(ex); // Additional error handling } ``` ## Testing the Integration A test endpoint has been added to verify Sentry integration: ``` GET /test-sentry ``` This endpoint throws and captures a test exception, confirming that events are being sent to Sentry. ## Deployment Considerations When deploying to production: 1. Update the Sentry DSN in your production configuration 2. Consider setting appropriate sampling rates based on traffic volume 3. Ensure PII (Personally Identifiable Information) handling complies with your privacy policies ## Performance Impact The Sentry SDK has minimal performance impact with default settings. If needed, you can adjust sampling rates to reduce the number of events sent to Sentry. ## Security Sentry DSNs should be treated as secrets and not committed directly to source control. Use environment variables or secret management for production deployments.