* add sentry * add sentry * better log web3proxy * Add managing and worker on sentry * better log web3proxy
2.9 KiB
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:
// 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:
"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:
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:
- Update the Sentry DSN in your production configuration
- Consider setting appropriate sampling rates based on traffic volume
- 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.