namespace IronTelemetry.Client; /// /// Configuration options for IronTelemetry SDK. /// public class TelemetryOptions { /// /// The DSN (Data Source Name) for your project. /// Format: https://{public_key}@irontelemetry.com /// public string Dsn { get; set; } = string.Empty; /// /// The environment (e.g., "production", "staging", "development"). /// public string? Environment { get; set; } /// /// The application version. /// public string? AppVersion { get; set; } /// /// The application build number. /// public string? AppBuild { get; set; } /// /// Sample rate for events (0.0 to 1.0). Default is 1.0 (100%). /// public double SampleRate { get; set; } = 1.0; /// /// Maximum number of breadcrumbs to store. Default is 100. /// public int MaxBreadcrumbs { get; set; } = 100; /// /// Enable debug logging. Default is false. /// public bool Debug { get; set; } /// /// Callback to filter exceptions before sending. /// Return false to skip sending the exception. /// public Func? BeforeSend { get; set; } /// /// Whether to attach stack trace to messages. Default is false. /// public bool AttachStacktrace { get; set; } /// /// Timeout for sending events. Default is 5 seconds. /// public TimeSpan SendTimeout { get; set; } = TimeSpan.FromSeconds(5); /// /// Custom HTTP handler for testing or proxy scenarios. /// public HttpMessageHandler? HttpHandler { get; set; } /// /// Enable offline queue for failed sends. Default is true. /// When enabled, failed sends are persisted to disk and retried automatically. /// public bool EnableOfflineQueue { get; set; } = true; /// /// Directory to store offline queue. Defaults to LocalApplicationData/IronTelemetry/Queue. /// public string? OfflineQueueDirectory { get; set; } /// /// Maximum items to store in offline queue. Oldest items dropped when exceeded. /// Default: 1000 /// public int MaxOfflineQueueSize { get; set; } = 1000; }