github getsentry/sentry-dotnet 6.0.0

20 hours ago

BREAKING CHANGES

  • This release adds support for .NET 10 and drops support for net8.0-android, net8.0-ios, net8.0-maccatalyst and net8.0-windows10.0.19041.0 (#4461)
  • Backpressure handling is now enabled by default, meaning that the SDK will monitor system health and reduce the sampling rate of events and transactions when the system is under load. When the system is determined to be healthy again, the sampling rates are returned to their original levels. (#4615)
  • Remove SentryLoggingOptions.ExperimentalLogging.MinimumLogLevel. Structured Logs can now be configured via the "Sentry" logging provider (e.g. in appsettings.json and appsettings.{HostEnvironment}.json) (#4700)
  • All logging provider types are internal now in order to ensure configuration as intended (#4700)
  • Rename SentryLog.ParentSpanId to SentryLog.SpanId reflecting the protocol change (#4778)
  • QOL improvement: Spans and Transactions now implement IDisposable so that they can be used with using statements/declarations that will automatically finish the span with a status of OK when it passes out of scope, if it has not already been finished, to be consistent with Activity classes when using OpenTelemetry (#4627)
  • SpanTracer and TransactionTracer are still public but these are now sealed (see also #4627)
  • The Structured Logs APIs are now stable: removed Experimental from SentryOptions (#4699)
  • Added support for v3 of the Android AssemblyStore format that is used in .NET 10 and dropped support for v1 that was used in .NET 8 (#4583)
  • CaptureFeedback now returns a SentryId and a CaptureFeedbackResult out parameter that indicate whether feedback was captured successfully and what the reason for failure was otherwise (#4613)
  • Deprecated Sentry.Azure.Functions.Worker as very few people were using it and the functionality can easily be replaced with OpenTelemetry. We've replaced our integration with a sample showing how to do this using our OpenTelemetry package instead. (#4693)
  • UWP support has been dropped. Future efforts will likely focus on WinUI 3, in line with Microsoft's recommendations for building Windows UI apps. (#4686)
  • BreadcrumbLevel.Critical has been renamed to BreadcrumbLevel.Fatal for consistency with the other Sentry SDKs (#4605)
  • SentryOptions.IsEnvironmentUser now defaults to false on MAUI. The means the User.Name will no longer be set, by default, to the name of the device (#4606)
  • Removed obsolete APIs (#4619)
    • Removed the unusual constructor from Sentry.Maui.BreadcrumbEvent that had been marked as obsolete. That constructor expected a IEnumerable<(string Key, string Value)>[] argument (i.e. an array of IEnumerable of tuples). If you were using this constructor, you should instead use the alternate constructor that expects just an IEnumerable of tuples: IEnumerable<(string Key, string Value)>.
    • Removed SentrySdk.CaptureUserFeedback and all associated members. Use the newer SentrySdk.CaptureFeedback instead.
  • ScopeExtensions.Populate is now internal (#4611)

Features

  • Support for .NET 10 (#4461)
  • Added a new SDK Sentry.Extensions.AI which allows LLM usage instrumentation via Microsoft.Extensions.AI (#4657)
  • Added experimental support for Session Replay on iOS (#4664)
  • Add support for Structured Logs in Sentry.Google.Cloud.Functions (#4700)
  • QOL features for Unity
    • The SDK now provides a IsSessionActive to allow checking the session state (#4662)
    • The SDK now makes use of the new SessionEndStatus Unhandled when capturing an unhandled but non-terminal exception, i.e. through the UnobservedTaskExceptionIntegration (#4633, #4653)
  • Extended the App context by app_memory that can hold the amount of memory used by the application in bytes. (#4707)
  • Add support for W3C traceparent header for outgoing requests (#4661)

Fixes

  • Memory leak when finishing an unsampled Transaction that has started unsampled Spans (#4717)
  • Sentry Tracing middleware crashed ASP.NET Core in .NET 10 in 6.0.0-rc.1 and earlier (#4747)
  • Captured Http Client Errors on .NET 5+ now include a full stack trace in order to improve Issue grouping (#4724)
  • Deliver system breadcrumbs in the main thread on Android (#4671)
  • The Serilog integration captures Structured Logs (when enabled) independently of captured Events and added Breadcrumbs (#4691)
  • Minimum Log-Level for Structured Logs, Breadcrumbs and Events in all Logging-Integrations (#4700)
    • for Sentry.Extensions.Logging, Sentry.AspNetCore, Sentry.Maui and Sentry.Google.Cloud.Functions
    • the Logger-Provider for Breadcrumbs and Events ignores Logging-Configuration (e.g. via appsettings.json)
      • use the intended SentryLoggingOptions.MinimumBreadcrumbLevel, SentryLoggingOptions.MinimumEventLevel, or add filter functions via SentryLoggingOptionsExtensions.AddLogEntryFilter
    • the Logger-Provider for Structured Logs respects Logging-Configuration (e.g. via appsettings.json)
      • when enabled by SentryOptions.EnableLogs
  • Avoid appending /NODEFAULTLIB:MSVCRT to NativeAOT linker arguments on Windows when targetting non-Windows platforms (Android, Browser) (#4760)
  • The SDK avoids redundant scope sync after transaction finish (#4623)
  • sentry-native is now automatically disabled for WASM applications (#4631)
  • Remove unnecessary files from SentryCocoaFramework before packing (#4602)

Dependencies

Don't miss a new sentry-dotnet release

NewReleases is sending notifications on new releases.