Skip to content

feat(metrics): Trace-connected Metrics#4834

Merged
jamescrosswell merged 34 commits intomainfrom
feat/trace-connected-metrics
Feb 8, 2026
Merged

feat(metrics): Trace-connected Metrics#4834
jamescrosswell merged 34 commits intomainfrom
feat/trace-connected-metrics

Conversation

@Flash0ver
Copy link
Member

@Flash0ver Flash0ver commented Jan 9, 2026

Implementation of Trace-connected Metrics
See https://develop.sentry.dev/sdk/telemetry/metrics/

This changeset contains the initial implementation of Trace-connected Metrics for Sentry.

Changes

  • made Batch-Buffer generic, so that it can be used for both Structured Logging and Trace-connected Metrics
  • added new types (SentryTraceMetrics and derived), which follow the same pattern and structure from Structured Logs
  • the SDK-APIs are generic, which are inspired by the System.Diagnostics.Metrics APIs of the BCL / System.Diagnostics.DiagnosticSource package
  • naming of the public APIs differs a bit from the SDK spec in order to be idiomatic .NET
  • currently, made APIs experimental

Please see the discussion comments below to discuss these design decisions.

Related changesets

Related issues and discussions

Follow-ups

Enable public beta

  • Sentry Docs: dotnet platform
  • Sentry Docs: Supported Platforms overview
  • Sentry Onboarding
  • then, enable in Sentry "Platform Categories"

@Flash0ver Flash0ver self-assigned this Jan 9, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 9, 2026

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 0798441

@codecov
Copy link

codecov bot commented Jan 9, 2026

Codecov Report

❌ Patch coverage is 79.33884% with 75 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.88%. Comparing base (c25d450) to head (0798441).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/Sentry/SentryMetricEmitter.Distribution.cs 30.00% 14 Missing ⚠️
src/Sentry/SentryMetricEmitter.Gauge.cs 30.00% 14 Missing ⚠️
src/Sentry/Internal/DefaultSentryMetricEmitter.cs 68.42% 9 Missing and 3 partials ⚠️
src/Sentry/Internal/Polyfills.cs 0.00% 10 Missing ⚠️
src/Sentry/SentryMetric.cs 87.32% 7 Missing and 2 partials ⚠️
src/Sentry/SentryMetric.Factory.cs 76.19% 5 Missing ⚠️
src/Sentry/SentryMetricEmitter.Counter.cs 50.00% 4 Missing ⚠️
src/Sentry/BindableSentryOptions.cs 25.00% 2 Missing and 1 partial ⚠️
src/Sentry/Internal/BatchProcessor.cs 96.36% 0 Missing and 2 partials ⚠️
src/Sentry/Internal/DisabledSentryMetricEmitter.cs 71.42% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4834      +/-   ##
==========================================
+ Coverage   73.85%   73.88%   +0.02%     
==========================================
  Files         483      494      +11     
  Lines       17578    17868     +290     
  Branches     3464     3509      +45     
==========================================
+ Hits        12983    13201     +218     
- Misses       3741     3808      +67     
- Partials      854      859       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Flash0ver Flash0ver marked this pull request as ready for review January 9, 2026 21:09
bruno-garcia added a commit to getsentry/symbol-collector that referenced this pull request Jan 11, 2026
…rics

Upgrades Sentry .NET SDK from 6.0.0 to 6.1.0-alpha.1 to test the new
experimental trace-connected metrics API from PR getsentry/sentry-dotnet#4834.

Changes:
- Upgrade Sentry SDK to 6.1.0-alpha.1
- Add SentryClientMetrics decorator that emits metrics to Sentry
- Enable experimental metrics in all apps (Server, Console, Android)
- Use SentryClientMetrics in DI registrations

The new metrics API provides:
- AddCounter: for counting events (files, uploads, errors)
- RecordDistribution: for value distributions (uploaded bytes)
- RecordGauge: for point-in-time values (jobs in flight)

Metrics are automatically correlated with the active trace/span.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bruno-garcia added a commit to getsentry/symbol-collector that referenced this pull request Jan 11, 2026
…rics

Upgrades Sentry .NET SDK from 6.0.0 to 6.1.0-alpha.1 to test the new
experimental trace-connected metrics API from PR getsentry/sentry-dotnet#4834.

Changes:
- Upgrade Sentry SDK to 6.1.0-alpha.1
- Add SentryClientMetrics decorator that emits metrics to Sentry
- Enable experimental metrics in all apps (Server, Console, Android)
- Use SentryClientMetrics in DI registrations (Core, Server, Console)
- Fix duplicate ClientMetrics registration in Core/Startup.cs

The new metrics API provides:
- AddCounter: for counting events (files, uploads, errors)
- RecordDistribution: for value distributions (uploaded bytes)
- RecordGauge: for point-in-time values (jobs in flight)

Metrics are automatically correlated with the active trace/span.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bruno-garcia added a commit to getsentry/symbol-collector that referenced this pull request Jan 11, 2026
…rics

Upgrades Sentry .NET SDK from 6.0.0 to 6.1.0-alpha.1 to test the new
experimental trace-connected metrics API from PR getsentry/sentry-dotnet#4834.

Changes:
- Upgrade Sentry SDK to 6.1.0-alpha.1
- Add SentryClientMetrics decorator that emits metrics to Sentry
- Make ClientMetrics methods virtual for proper polymorphism
- Enable experimental metrics in all apps (Server, Console, Android)
- Use SentryClientMetrics in DI registrations (Core, Server, Console)
- Fix duplicate ClientMetrics registration in Core/Startup.cs

The new metrics API provides:
- AddCounter: for counting events (files, uploads, errors)
- RecordDistribution: for value distributions (uploaded bytes)
- RecordGauge: for point-in-time values (jobs in flight)

Metrics are automatically correlated with the active trace/span.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bruno-garcia added a commit to getsentry/symbol-collector that referenced this pull request Jan 12, 2026
#252)

* feat: upgrade Sentry SDK to 6.1.0-alpha.1 and add trace-connected metrics

Upgrades Sentry .NET SDK from 6.0.0 to 6.1.0-alpha.1 to test the new
experimental trace-connected metrics API from PR getsentry/sentry-dotnet#4834.

Changes:
- Upgrade Sentry SDK to 6.1.0-alpha.1
- Add SentryClientMetrics decorator that emits metrics to Sentry
- Make ClientMetrics methods virtual for proper polymorphism
- Enable experimental metrics in all apps (Server, Console, Android)
- Use SentryClientMetrics in DI registrations (Core, Server, Console)
- Fix duplicate ClientMetrics registration in Core/Startup.cs

The new metrics API provides:
- AddCounter: for counting events (files, uploads, errors)
- RecordDistribution: for value distributions (uploaded bytes)
- RecordGauge: for point-in-time values (jobs in flight)

Metrics are automatically correlated with the active trace/span.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test: add unit tests for SentryClientMetrics

Adds tests to verify that:
- SentryClientMetrics emits trace_metric items to Sentry
- All metric types (Counter, Distribution, Gauge) are emitted
- Base class counters are also incremented (dual emission)
- Polymorphism works correctly (override vs new)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: use IHub for SentryClientMetrics to improve testability

- SentryClientMetrics now accepts IHub in constructor (defaults to HubAdapter.Instance)
- Tests use isolated SDK instances with recording transport
- Each test initializes/disposes its own SDK for proper isolation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Delete test/SymbolCollector.Core.Tests/SentryClientMetricsTests.cs

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Flash0ver and others added 4 commits January 16, 2026 13:21
Provides hierarchical constants for metric units supported by Sentry Relay,
organized into Duration, Information, and Fraction categories.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jamescrosswell jamescrosswell deleted the feat/trace-connected-metrics branch February 8, 2026 21:37
This was referenced Feb 10, 2026
github-merge-queue bot pushed a commit to DFE-Digital/teaching-record-system that referenced this pull request Feb 24, 2026
Updated
[Sentry.Extensions.Logging](https://github.com/getsentry/sentry-dotnet)
from 5.16.2 to 6.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [Sentry.Extensions.Logging's
releases](https://github.com/getsentry/sentry-dotnet/releases)._

## 6.1.0

### Features

- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))
- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))

### Fixes

- User Feedback now contains additional Context and Tags, like
`Environment` and `Release`
([#​4883](getsentry/sentry-dotnet#4883))
- Allow Sentry failures from the Sentry CLI when SENTRY_ALLOW_FAILURE is
set ([#​4852](getsentry/sentry-dotnet#4852))
- The SDK now logs a specific error message when envelopes are rejected
due to size limits (HTTP 413)
([#​4863](getsentry/sentry-dotnet#4863))
- Fixed thread-safety issue on Android when multiple events are captured
concurrently
([#​4814](getsentry/sentry-dotnet#4814))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.6
([#​4832](getsentry/sentry-dotnet#4832),
[#​4875](getsentry/sentry-dotnet#4875),
[#​4892](getsentry/sentry-dotnet#4892),
[#​4897](getsentry/sentry-dotnet#4897))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0126)
-
[diff](getsentry/sentry-native@0.12.2...0.12.6)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

## 6.1.0-alpha.2

### BREAKING CHANGES

- Rename [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) APIs to avoid
implying aggregation
([#​4834](getsentry/sentry-dotnet#4834))
  - from `AddCounter` to `EmitCounter`
  - from `RecordDistribution` to `EmitDistribution`
  - from `RecordGauge` to `EmitGauge`

### Features

- Validate [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Fixes

- Attributes for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) set via
`SetBeforeSendLog` callback
([#​4834](getsentry/sentry-dotnet#4834))
- Disallow unsupported 128-bit floating point numbers (i.e. `decimal`)
for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

## 6.1.0-alpha.1

### Features

- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))
- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.3
([#​4832](getsentry/sentry-dotnet#4832))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0123)
-
[diff](getsentry/sentry-native@0.12.2...0.12.3)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

## 6.0.0

### 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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4700))
- All logging provider types are _internal_ now in order to ensure
configuration as intended
([#​4700](getsentry/sentry-dotnet#4700))
- Rename `SentryLog.ParentSpanId` to `SentryLog.SpanId` reflecting the
protocol change
([#​4778](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4627))
- SpanTracer and TransactionTracer are still public but these are now
`sealed` (see also
[#​4627](getsentry/sentry-dotnet#4627))
- The _Structured Logs_ APIs are now stable: removed `Experimental` from
`SentryOptions`
([#​4699](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4686))
- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4611))

### Features

- Support for .NET 10
([#​4461](getsentry/sentry-dotnet#4461))
- Added a new SDK `Sentry.Extensions.AI` which allows LLM usage
instrumentation via `Microsoft.Extensions.AI`
([#​4657](getsentry/sentry-dotnet#4657))
- Added experimental support for Session Replay on iOS
([#​4664](getsentry/sentry-dotnet#4664))
- Add support for _Structured Logs_ in `Sentry.Google.Cloud.Functions`
([#​4700](getsentry/sentry-dotnet#4700))
- QOL features for Unity
- The SDK now provides a `IsSessionActive` to allow checking the session
state ([#​4662](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4633),
[#​4653](getsentry/sentry-dotnet#4653))
- Extended the App context by `app_memory` that can hold the amount of
memory used by the application in bytes.
([#​4707](getsentry/sentry-dotnet#4707))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
- This feature is disabled by default. Set `PropagateTraceparent = true`
when initializing the SDK if to include the W3C traceparent header on
outgoing requests.
- See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- Sentry Tracing middleware crashed ASP.NET Core in .NET 10 in
6.0.0-rc.1 and earlier
([#​4747](getsentry/sentry-dotnet#4747))
- Captured [Http Client
Errors](https://docs.sentry.io/platforms/dotnet/guides/aspnet/configuration/http-client-errors/)
on .NET 5+ now include a full stack trace in order to improve Issue
grouping
([#​4724](getsentry/sentry-dotnet#4724))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- The `Serilog` integration captures _Structured Logs_ (when enabled)
independently of captured Events and added Breadcrumbs
([#​4691](getsentry/sentry-dotnet#4691))
- Minimum Log-Level for _Structured Logs_, _Breadcrumbs_ and _Events_ in
all Logging-Integrations
([#​4700](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4760))
- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
 ... (truncated)

## 6.0.0-rc.2

### Fixes

- Captured [Http Client
Errors](https://docs.sentry.io/platforms/dotnet/guides/aspnet/configuration/http-client-errors/)
on .NET 5+ now include a full stack trace in order to improve Issue
grouping
([#​4724](getsentry/sentry-dotnet#4724))
- Sentry Tracing middleware crashed ASP.NET Core in .NET 10 in
6.0.0-rc.1 and earlier
([#​4747](getsentry/sentry-dotnet#4747))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.26.0
([#​4728](getsentry/sentry-dotnet#4728))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8260)
-
[diff](getsentry/sentry-java@8.24.0...8.26.0)

## 6.0.0-rc.1

### 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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4615))
- 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](getsentry/sentry-dotnet#4627))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
This feature is disabled by default. Set `PropagateTraceparent = true`
when initializing the SDK if to include the W3C traceparent header on
outgoing requests.
- The _Structured Logs_ APIs are now stable: removed `Experimental` from
`SentryOptions`
([#​4699](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4686))
- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Remove unnecessary files from SentryCocoaFramework before packing
([#​4602](getsentry/sentry-dotnet#4602))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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.
- SpanTracer and TransactionTracer are still public but these are now
`sealed` (see also
[#​4627](getsentry/sentry-dotnet#4627))
- ScopeExtensions.Populate is now internal
([#​4611](getsentry/sentry-dotnet#4611))

See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Features

- Support for .NET 10
([#​4461](getsentry/sentry-dotnet#4461))
- Added experimental support for Session Replay on iOS
([#​4664](getsentry/sentry-dotnet#4664))
- QOL features for Unity
- The SDK now provides a `IsSessionActive` to allow checking the session
state ([#​4662](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4633),
[#​4653](getsentry/sentry-dotnet#4653))
- Implemented instance isolation so that multiple instances of the
Sentry SDK can be instantiated inside the same process when using the
Caching Transport
([#​4498](getsentry/sentry-dotnet#4498))
- Extended the App context by `app_memory` that can hold the amount of
memory used by the application in bytes.
([#​4707](getsentry/sentry-dotnet#4707))

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- The `Serilog` integration captures _Structured Logs_ (when enabled)
independently of captured Events and added Breadcrumbs
([#​4691](getsentry/sentry-dotnet#4691))
- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
- sentry-native is now automatically disabled for WASM applications
([#​4631](getsentry/sentry-dotnet#4631))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.25.0
([#​4679](getsentry/sentry-dotnet#4679))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8250)
-
[diff](getsentry/sentry-java@8.24.0...8.25.0)
- Bump Native SDK from v0.12.0 to v0.12.1
([#​4690](getsentry/sentry-dotnet#4690),
[#​4737](getsentry/sentry-dotnet#4737))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0121)
-
[diff](getsentry/sentry-native@0.12.0...0.12.1)
- Bump Cocoa SDK from v8.57.1 to v8.57.2
([#​4704](getsentry/sentry-dotnet#4704))
 ... (truncated)

## 6.0.0-preview.2

### BREAKING CHANGES

- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Remove unnecessary files from SentryCocoaFramework before packing
([#​4602](getsentry/sentry-dotnet#4602))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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.
- 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](getsentry/sentry-dotnet#4615))
- ScopeExtensions.Populate is now internal
([#​4611](getsentry/sentry-dotnet#4611))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
This feature is disabled by default. When enabled, outgoing requests
will include the W3C traceparent header.
  ```csharp
  SentrySdk.Init(options =>
  {
      // ...
      options.PropagateTraceparent = true;
  });
  ```

See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Fixes

- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
- sentry-native is now automatically disabled for WASM applications
([#​4631](getsentry/sentry-dotnet#4631))

## 6.0.0-preview.1

### 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](getsentry/sentry-dotnet#4461))
- 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](getsentry/sentry-dotnet#4583))

## 5.16.3

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- backported via
([#​4853](getsentry/sentry-dotnet#4853))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- backported via
([#​4856](getsentry/sentry-dotnet#4856))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.25.0
([#​4679](getsentry/sentry-dotnet#4679))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8250)
-
[diff](getsentry/sentry-java@8.24.0...8.25.0)
- Bump Native SDK from v0.12.0 to v0.12.1
([#​4690](getsentry/sentry-dotnet#4690))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0121)
-
[diff](getsentry/sentry-native@0.12.0...0.12.1)
- Bump Cocoa SDK from v8.57.1 to v8.57.2
([#​4704](getsentry/sentry-dotnet#4704))
-
[changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#​8572)
-
[diff](getsentry/sentry-cocoa@8.57.1...8.57.2)
- Bump CLI from v2.57.0 to v2.58.1
([#​4705](getsentry/sentry-dotnet#4705),
[#​4727](getsentry/sentry-dotnet#4727))
-
[changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#​2581)
-
[diff](getsentry/sentry-cli@2.57.0...2.58.1)

Commits viewable in [compare
view](getsentry/sentry-dotnet@5.16.2...6.1.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Sentry.Extensions.Logging&package-manager=nuget&previous-version=5.16.2&new-version=6.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Gunn <james@gunn.io>
github-merge-queue bot pushed a commit to DFE-Digital/teaching-record-system that referenced this pull request Feb 24, 2026
Updated [Sentry.AspNetCore](https://github.com/getsentry/sentry-dotnet)
from 6.0.0 to 6.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [Sentry.AspNetCore's
releases](https://github.com/getsentry/sentry-dotnet/releases)._

## 6.1.0

### Features

- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))
- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))

### Fixes

- User Feedback now contains additional Context and Tags, like
`Environment` and `Release`
([#​4883](getsentry/sentry-dotnet#4883))
- Allow Sentry failures from the Sentry CLI when SENTRY_ALLOW_FAILURE is
set ([#​4852](getsentry/sentry-dotnet#4852))
- The SDK now logs a specific error message when envelopes are rejected
due to size limits (HTTP 413)
([#​4863](getsentry/sentry-dotnet#4863))
- Fixed thread-safety issue on Android when multiple events are captured
concurrently
([#​4814](getsentry/sentry-dotnet#4814))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.6
([#​4832](getsentry/sentry-dotnet#4832),
[#​4875](getsentry/sentry-dotnet#4875),
[#​4892](getsentry/sentry-dotnet#4892),
[#​4897](getsentry/sentry-dotnet#4897))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0126)
-
[diff](getsentry/sentry-native@0.12.2...0.12.6)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

## 6.1.0-alpha.2

### BREAKING CHANGES

- Rename [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) APIs to avoid
implying aggregation
([#​4834](getsentry/sentry-dotnet#4834))
  - from `AddCounter` to `EmitCounter`
  - from `RecordDistribution` to `EmitDistribution`
  - from `RecordGauge` to `EmitGauge`

### Features

- Validate [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Fixes

- Attributes for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) set via
`SetBeforeSendLog` callback
([#​4834](getsentry/sentry-dotnet#4834))
- Disallow unsupported 128-bit floating point numbers (i.e. `decimal`)
for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

## 6.1.0-alpha.1

### Features

- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))
- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.3
([#​4832](getsentry/sentry-dotnet#4832))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0123)
-
[diff](getsentry/sentry-native@0.12.2...0.12.3)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

Commits viewable in [compare
view](getsentry/sentry-dotnet@6.0.0...6.1.0).
</details>

Updated [Sentry.Serilog](https://github.com/getsentry/sentry-dotnet)
from 5.16.2 to 6.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [Sentry.Serilog's
releases](https://github.com/getsentry/sentry-dotnet/releases)._

## 6.1.0

### Features

- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))
- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))

### Fixes

- User Feedback now contains additional Context and Tags, like
`Environment` and `Release`
([#​4883](getsentry/sentry-dotnet#4883))
- Allow Sentry failures from the Sentry CLI when SENTRY_ALLOW_FAILURE is
set ([#​4852](getsentry/sentry-dotnet#4852))
- The SDK now logs a specific error message when envelopes are rejected
due to size limits (HTTP 413)
([#​4863](getsentry/sentry-dotnet#4863))
- Fixed thread-safety issue on Android when multiple events are captured
concurrently
([#​4814](getsentry/sentry-dotnet#4814))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.6
([#​4832](getsentry/sentry-dotnet#4832),
[#​4875](getsentry/sentry-dotnet#4875),
[#​4892](getsentry/sentry-dotnet#4892),
[#​4897](getsentry/sentry-dotnet#4897))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0126)
-
[diff](getsentry/sentry-native@0.12.2...0.12.6)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

## 6.1.0-alpha.2

### BREAKING CHANGES

- Rename [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) APIs to avoid
implying aggregation
([#​4834](getsentry/sentry-dotnet#4834))
  - from `AddCounter` to `EmitCounter`
  - from `RecordDistribution` to `EmitDistribution`
  - from `RecordGauge` to `EmitGauge`

### Features

- Validate [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Fixes

- Attributes for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/) set via
`SetBeforeSendLog` callback
([#​4834](getsentry/sentry-dotnet#4834))
- Disallow unsupported 128-bit floating point numbers (i.e. `decimal`)
for [Trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

## 6.1.0-alpha.1

### Features

- Extended `SentryThread` by `Main` to allow indication whether the
thread is considered the current main thread
([#​4807](getsentry/sentry-dotnet#4807))
- Add _experimental_ support for [Sentry trace-connected
Metrics](https://docs.sentry.io/product/explore/metrics/)
([#​4834](getsentry/sentry-dotnet#4834))

### Dependencies

- Bump Native SDK from v0.12.2 to v0.12.3
([#​4832](getsentry/sentry-dotnet#4832))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0123)
-
[diff](getsentry/sentry-native@0.12.2...0.12.3)
- Bump Java SDK from v8.28.0 to v8.29.0
([#​4817](getsentry/sentry-dotnet#4817))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8290)
-
[diff](getsentry/sentry-java@8.28.0...8.29.0)

## 6.0.0

### 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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4700))
- All logging provider types are _internal_ now in order to ensure
configuration as intended
([#​4700](getsentry/sentry-dotnet#4700))
- Rename `SentryLog.ParentSpanId` to `SentryLog.SpanId` reflecting the
protocol change
([#​4778](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4627))
- SpanTracer and TransactionTracer are still public but these are now
`sealed` (see also
[#​4627](getsentry/sentry-dotnet#4627))
- The _Structured Logs_ APIs are now stable: removed `Experimental` from
`SentryOptions`
([#​4699](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4686))
- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4611))

### Features

- Support for .NET 10
([#​4461](getsentry/sentry-dotnet#4461))
- Added a new SDK `Sentry.Extensions.AI` which allows LLM usage
instrumentation via `Microsoft.Extensions.AI`
([#​4657](getsentry/sentry-dotnet#4657))
- Added experimental support for Session Replay on iOS
([#​4664](getsentry/sentry-dotnet#4664))
- Add support for _Structured Logs_ in `Sentry.Google.Cloud.Functions`
([#​4700](getsentry/sentry-dotnet#4700))
- QOL features for Unity
- The SDK now provides a `IsSessionActive` to allow checking the session
state ([#​4662](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4633),
[#​4653](getsentry/sentry-dotnet#4653))
- Extended the App context by `app_memory` that can hold the amount of
memory used by the application in bytes.
([#​4707](getsentry/sentry-dotnet#4707))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
- This feature is disabled by default. Set `PropagateTraceparent = true`
when initializing the SDK if to include the W3C traceparent header on
outgoing requests.
- See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- Sentry Tracing middleware crashed ASP.NET Core in .NET 10 in
6.0.0-rc.1 and earlier
([#​4747](getsentry/sentry-dotnet#4747))
- Captured [Http Client
Errors](https://docs.sentry.io/platforms/dotnet/guides/aspnet/configuration/http-client-errors/)
on .NET 5+ now include a full stack trace in order to improve Issue
grouping
([#​4724](getsentry/sentry-dotnet#4724))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- The `Serilog` integration captures _Structured Logs_ (when enabled)
independently of captured Events and added Breadcrumbs
([#​4691](getsentry/sentry-dotnet#4691))
- Minimum Log-Level for _Structured Logs_, _Breadcrumbs_ and _Events_ in
all Logging-Integrations
([#​4700](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4760))
- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
 ... (truncated)

## 6.0.0-rc.2

### Fixes

- Captured [Http Client
Errors](https://docs.sentry.io/platforms/dotnet/guides/aspnet/configuration/http-client-errors/)
on .NET 5+ now include a full stack trace in order to improve Issue
grouping
([#​4724](getsentry/sentry-dotnet#4724))
- Sentry Tracing middleware crashed ASP.NET Core in .NET 10 in
6.0.0-rc.1 and earlier
([#​4747](getsentry/sentry-dotnet#4747))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.26.0
([#​4728](getsentry/sentry-dotnet#4728))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8260)
-
[diff](getsentry/sentry-java@8.24.0...8.26.0)

## 6.0.0-rc.1

### 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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4615))
- 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](getsentry/sentry-dotnet#4627))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
This feature is disabled by default. Set `PropagateTraceparent = true`
when initializing the SDK if to include the W3C traceparent header on
outgoing requests.
- The _Structured Logs_ APIs are now stable: removed `Experimental` from
`SentryOptions`
([#​4699](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4686))
- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Remove unnecessary files from SentryCocoaFramework before packing
([#​4602](getsentry/sentry-dotnet#4602))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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.
- SpanTracer and TransactionTracer are still public but these are now
`sealed` (see also
[#​4627](getsentry/sentry-dotnet#4627))
- ScopeExtensions.Populate is now internal
([#​4611](getsentry/sentry-dotnet#4611))

See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Features

- Support for .NET 10
([#​4461](getsentry/sentry-dotnet#4461))
- Added experimental support for Session Replay on iOS
([#​4664](getsentry/sentry-dotnet#4664))
- QOL features for Unity
- The SDK now provides a `IsSessionActive` to allow checking the session
state ([#​4662](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4633),
[#​4653](getsentry/sentry-dotnet#4653))
- Implemented instance isolation so that multiple instances of the
Sentry SDK can be instantiated inside the same process when using the
Caching Transport
([#​4498](getsentry/sentry-dotnet#4498))
- Extended the App context by `app_memory` that can hold the amount of
memory used by the application in bytes.
([#​4707](getsentry/sentry-dotnet#4707))

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- The `Serilog` integration captures _Structured Logs_ (when enabled)
independently of captured Events and added Breadcrumbs
([#​4691](getsentry/sentry-dotnet#4691))
- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
- sentry-native is now automatically disabled for WASM applications
([#​4631](getsentry/sentry-dotnet#4631))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.25.0
([#​4679](getsentry/sentry-dotnet#4679))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8250)
-
[diff](getsentry/sentry-java@8.24.0...8.25.0)
- Bump Native SDK from v0.12.0 to v0.12.1
([#​4690](getsentry/sentry-dotnet#4690),
[#​4737](getsentry/sentry-dotnet#4737))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0121)
-
[diff](getsentry/sentry-native@0.12.0...0.12.1)
- Bump Cocoa SDK from v8.57.1 to v8.57.2
([#​4704](getsentry/sentry-dotnet#4704))
 ... (truncated)

## 6.0.0-preview.2

### BREAKING CHANGES

- `BreadcrumbLevel.Critical` has been renamed to `BreadcrumbLevel.Fatal`
for consistency with the other Sentry SDKs
([#​4605](getsentry/sentry-dotnet#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](getsentry/sentry-dotnet#4606))
- Remove unnecessary files from SentryCocoaFramework before packing
([#​4602](getsentry/sentry-dotnet#4602))
- Removed obsolete APIs
([#​4619](getsentry/sentry-dotnet#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.
- 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](getsentry/sentry-dotnet#4615))
- ScopeExtensions.Populate is now internal
([#​4611](getsentry/sentry-dotnet#4611))
- Add support for W3C traceparent header for outgoing requests
([#​4661](getsentry/sentry-dotnet#4661))
This feature is disabled by default. When enabled, outgoing requests
will include the W3C traceparent header.
  ```csharp
  SentrySdk.Init(options =>
  {
      // ...
      options.PropagateTraceparent = true;
  });
  ```

See
https://develop.sentry.dev/sdk/telemetry/traces/distributed-tracing/#w3c-trace-context-header
for more details.

### Fixes

- The SDK avoids redundant scope sync after transaction finish
([#​4623](getsentry/sentry-dotnet#4623))
- sentry-native is now automatically disabled for WASM applications
([#​4631](getsentry/sentry-dotnet#4631))

## 6.0.0-preview.1

### 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](getsentry/sentry-dotnet#4461))
- 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](getsentry/sentry-dotnet#4583))

## 5.16.3

### Fixes

- Memory leak when finishing an unsampled Transaction that has started
unsampled Spans
([#​4717](getsentry/sentry-dotnet#4717))
- backported via
([#​4853](getsentry/sentry-dotnet#4853))
- Deliver system breadcrumbs in the main thread on Android
([#​4671](getsentry/sentry-dotnet#4671))
- backported via
([#​4856](getsentry/sentry-dotnet#4856))

### Dependencies

- Bump Java SDK from v8.24.0 to v8.25.0
([#​4679](getsentry/sentry-dotnet#4679))
-
[changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#​8250)
-
[diff](getsentry/sentry-java@8.24.0...8.25.0)
- Bump Native SDK from v0.12.0 to v0.12.1
([#​4690](getsentry/sentry-dotnet#4690))
-
[changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#​0121)
-
[diff](getsentry/sentry-native@0.12.0...0.12.1)
- Bump Cocoa SDK from v8.57.1 to v8.57.2
([#​4704](getsentry/sentry-dotnet#4704))
-
[changelog](https://github.com/getsentry/sentry-cocoa/blob/main/CHANGELOG.md#​8572)
-
[diff](getsentry/sentry-cocoa@8.57.1...8.57.2)
- Bump CLI from v2.57.0 to v2.58.1
([#​4705](getsentry/sentry-dotnet#4705),
[#​4727](getsentry/sentry-dotnet#4727))
-
[changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#​2581)
-
[diff](getsentry/sentry-cli@2.57.0...2.58.1)

Commits viewable in [compare
view](getsentry/sentry-dotnet@5.16.2...6.1.0).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Gunn <james@gunn.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants