github DataDog/dd-trace-dotnet v3.0.0-prerelease
3.0.0-prerelease

latest releases: v3.39.0, v3.38.0, v3.37.0...
pre-release19 months ago

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 TracerSettings and Tracer instances.
  • 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, setting DD_TRACE_ENABLED=0 would 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.AspNet module is no longer supported. In v1.x.x and 2.x.x ASP.NET support allowed adding a reference to the Datadog.Trace.AspNet module 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 language tag 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.0 target to netcoreapp2.1 i.e. drop netcoreapp2.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 SpanContextInjectorExtractorTests to account for tracestate (#5479)
  • Fix GitLab release process (#5807)
  • Fix Create Draft Release action (#5822)

Miscellaneous

  • [v3] Add migration doc for v2 -> v3 (#5091)
  • [v3] Add DSM checkpoints to the public inject/extract API (#5128)
  • Add integration test for DSM manual instrumentation API (#5419)

Changes since 2.56.0

Don't miss a new dd-trace-dotnet release

NewReleases is sending notifications on new releases.