Skip to content

3.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Sep 13:43
· 441 commits to master since this release
01c50c3

Summary

This is the first stable release of the next major version of the .NET APM SDK.

The following are the high-level changes present in the 3.x.x release line compared to 2.x.x. 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

New Features

  • Support for alpine images on ARM64. alpine images with version 3.18 and above, running on ARM64 images are now supported on .NET 6+.

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 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

Updates in this release

In addition to the changes described above, this release includes the following features:

  • [Tracer] Skip inserting the startup hook into methods in the type Costura.AssemblyLoader (#5910)
  • [Tracer] Fix bug in ADO.NET connection string extraction #5949
  • [Exception Replay] Update configuration values #5821
  • [IAST] Taint values coming from database (#5804)
  • [IAST] Allow customized cookie filtering (#5804)
  • [ASM] RASP shell injection vulnerability (#5871)
  • [Profiler] Provide the thread id that blocked another thread (#5959)

Changes

Tracer

  • [Tracer] Skip inserting the startup hook into methods in the type Costura.AssemblyLoader (#5910)
  • Add support for alpine on arm64 (#5933)
  • Fix incorrect instrumentation for new TracerSettings(bool) (#5949)
  • Protect the connection string tags extractor from an invalid connection string (#5956)

CI Visibility

  • Don't include the Datadog.Trace.BenchmarkDotNet NuGet in the release artifacts (#5954)

ASM

  • [IAST] Taint values coming from database (#5804)
  • [ASM] RASP shell injection vulnerability (#5871)
  • [IAST] CallSite with generics support (#5913)
  • [IAST] Move analyzers init to an explicit call (#5920)
  • [IAST] Taint db minor fixes (#5926)
  • [IAST] Support for specifying aspect min version (#5931)
  • [IAST] Cookie filter implementation (#5947)

Continuous Profiler

  • [Profiler] Provide the thread id that blocked another thread (#5959)
  • [Profiler] Improve .NET Framework profiling support (#5867)

Debugger

  • [Exception Replay] Update configuration and add test suite for ASP.NET Core (#5821)

Serverless

  • [Mini Agent][Private Beta Testing] Mini-agent for Azure Function Apps for non-consumption plans (#5792)
  • [serverless] No-op AWS Lambda integration on missing API Key (#5900)
  • Revert "[serverless] No-op AWS Lambda integration on missing API Key" (#5941)

Build / Test

  • [Profiler] Fix LinuxDlIteratePhdrDeadlock test (#5963)
  • Output samples to a single top-level "artifacts" folder (#5744)
  • Try to head off future build issues (#5770)
  • Fix bug in verification stage of release (#5894)
  • Need to freeze/unfreeze all PRs (#5902)
  • Replace fpm with nfpm (#5905)
  • Ignore StyleCop.Analyzers in dependabot (#5906)
  • Fix gitlab build (#5907)
  • Remove prerelease flag from smoke tests (#5912)
  • Enable ad-hoc memory dumps on Windows x86 (#5919)
  • Stop testing .NET Core 2.1 on PRs (#5922)
  • Try fix single step download builds (#5923)
  • Remove obsolete lib-injection build artifacts (#5927)
  • Remove dependency of download-single-step-artifacts on build (#5945)
  • Ensure we clean log files before testing with Nuke (#5950)
  • Log to a random file in telemetry forwarder tests (#5951)
  • Remove the xml and pdb files from the linux packages (#5961)
  • Fix debugger arm64 alpine tests (#5965)
  • [IAST] Added missing netstd snapshot (#5966)

Miscellaneous

  • Normalize the environment variable names used by crashtracking (#5898)
  • Pin StyleCop.Analzyers to latest pre-release (#5908)
  • Fix signature size check in ModifyLocalSig (#5921)
  • Use a native logger for critical failures in the loader (#5929)
  • Fix ToString and ToWString on large strings (#5930)
  • Prevent the native loader from being unloaded while sending telemetry (#5944)
  • [Crashtracking] Keep mangled name in case of error (#5952)

Changes since 2.58.0