Summary
This is the first pre-release of the next major version of the .NET APM SDK. The following are the high-level changes to be aware of. These include breaking changes in public APIs, changes in artifacts, and changes to default settings.
For the full list of changes, including exactly what changed and how you should handle them, please see the MIGRATING document
Breaking changes
- Custom-only tracing (using the Datadog.Trace NuGet package), without any automatic tracing, is no longer supported. Custom instrumentation with the Datadog.Trace NuGet where you have also configured automatic-instrumentation is still supported as it was in v2.x.x.
- The public API surface has changed in the Datadog.Trace NuGet package. A number of previously obsolete APIs have been removed, and some other APIs have been marked obsolete. Most changes are related to how you create
TracerSettingsandTracerinstances. - Changes to default settings. The default values of some settings have changed, and others have been removed. See below for more details.
- Changes in behavior. The semantic requirements and meaning of some settings have changed, as have some of the tags added to traces. See below for more details.
- The 32-bit MSI installer will no longer be available. The 64-bit MSI installer already includes support for tracing 32-bit processes, so you should use this installer instead.
- The client library will still be injected when
DD_TRACE_ENABLED=0. In v2.x.x, settingDD_TRACE_ENABLED=0would prevent the client library from being injected into the application completely. In v3.0.0+, the client library will still be injected, but tracing will be disabled. - Referencing the
Datadog.Trace.AspNetmodule is no longer supported. In v1.x.x and 2.x.x ASP.NET support allowed adding a reference to theDatadog.Trace.AspNetmodule in your web.config. This is no longer supported in v3.x.x.
Deprecation notices
- .NET Core 2.1 is marked EOL in v3.0.0+ of the tracer. That means versions 2.0, 2.1, 2.2 and 3.0 of .NET Core are now EOL. These versions may still work with v3.0.0+, but they will no longer receive significant testing and you will receive limited support for issues arising with EOL versions.
- Datadog.Trace.OpenTracing is now obsolete. OpenTracing is considered deprecated, and so Datadog.Trace.OpenTracing is considered deprecated. See the following details on future deprecation.
- macOS 11 is no longer supported for CI Visibility in v3.0.0+. Only macOS 12 and above are supported.
Major version policy and future deprecation
- Announcing a major version roadmap. We intend to make yearly major releases, starting from v3.0.0 in 2024, and v4.0.0 in 2025. We clearly will aim for minimal breaking changes, with the primary focus being on maintaining support for new versions of .NET and removal of EOL frameworks and operating systems.
- Planned removal of support for .NET Core 2.x and .NET Core 3.0 in version v4.0.0+. We intend to completely remove support for .NET Core 2.x and .NET Core 3.0 in v4.0.0. .NET Framework 4.6.1+ will continue to be supported.
- Planned removal of support for some linux distributions. In version v4.0.0, we intend to drop support for CentOS 7, RHEL 7, and CentOS Stream 8.
- Planned remove of support for App Analytics. In version v4.0.0, we intend to drop support for App Analytics and associated settings.
For the full list of changes, including exactly what changed and how you should handle them, please see the MIGRATING document
Changes
Tracer
- [v3] [Tracing] fix tag name normalization in
DD_TRACE_HEADER_TAGS(#4599) - [v3] add
languagetag all spans (#4839) - [v3] Implement manual tracing functionality in Datadog.Trace.Manual (#5072)
- [v3] Update OpenTracing library to use new public APIs (#5073)
- [v3] [Tracing] Change default value of
DD_TRACE_SAMPLING_RULES_FORMAT(#5141) - [v3] Change manual instrumentation approach to not use reverse duck-typing (#5214)
- [v3] Add unit tests for the
[Instrumented]attribute (#5259) - [v3] Change
netstandard2.0target tonetcoreapp2.1i.e. dropnetcoreapp2.0(#5260) - [v3] Change defaults for WCF settings (#5324)
- [v3] Delete
ISpanContextExtractor(#5355) - [v3] Update behavior of header tags parsing (AIT-8600) (#5438)
CI Visibility
- [v3] Ensure coverage collector targets netstandard2.0 (#5334)
ASM
- [ASM][v3] Update template env var meaning (#5166)
Continuous Profiler
- [Profiler] Signal-based profiler/Non-Signal-based: prevent deadlock (#5808)
Build / Test
- [Version Bump] 3.0.0-prerelease (#4924)
- [v3] Minor updates for subsequent work (#5065)
- [v3] Create a new Datadog.Trace.Manual project (#5071)
- [v3] Stop producing the 32-bit MSI installer (#5093)
- [v3] Add additional fields to linux packages (#5110)
- [v3] Update manual throughput tests (#5183)
- [v3] Changes to release process (#5356)
- [v3] Build against macos-12 instead of macos-11 (#5395)
- Merge v3 (#5408)
- [v3] Fix
SpanContextInjectorExtractorTeststo account fortracestate(#5479) - Fix GitLab release process (#5807)
- Fix Create Draft Release action (#5822)