Skip to content

Releases: DataDog/dd-trace-dotnet

2.31.0

31 May 13:00
5a0f7f5
Compare
Choose a tag to compare

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

[Serverless] Add support for instrumentation of methods in generic base classes
[Profiler] .NET exception & lock profiling GA

Changes

Tracer

  • [Tracing] Initial work on configuration telemetry (#4033)
  • [Tracing] clean up for 128-bit trace ids (#4075)
  • [Tracing] Remove Span and TraceContext locks and add a cache layer (#4125)
  • [Tracing] Add nullable and more tests for configuration (#4139)
  • [Tracing] Fix potential recursion in managed loader by moving log message (#4153)
  • [Tracing] Allows Adding service level DBM Comment on SqlServer queries. (#3989)
  • [Tracing] v1 Schema: Add peer.service tag to MongoDb and Kafka spans (#4141)

CI Visibility

  • [CIVisibility] Change the code coverage EVP subdomain to citestcov-intake (#4150)
  • [CIVisibility] Remove the pipeline url processing (#4177)

ASM

  • [ASM] Path traversal vulnerability (#4052)
  • [ASM] Taint request body (#4080)
  • IAST - Evidence sensitive data redaction (#4107)
  • [ASM] Add source: taint request cookies (#4120)
  • [ASM] Include ASM code ownership (#4121)
  • [ASM] fix bug in test that meant user agent was being repeated in snapshots (#4124)
  • [ASM] Add disabled flag and integration tests (#4129)
  • missing custom rules capability (#4136)
  • IAST - Evidence redaction Yaml suite (#4163)
  • [ASM] update ruleset 1.7.0 > 1.7.1 (#4182)
  • [ASM] Include path traversal method overloads in the netstandard library (#4131)

Continuous Profiler

  • [Profiler] Allow comparison for Poisson after allocation context (#4111)
  • [Profiler] Bump libdatadog to 2.2.0 (#4119)
  • [Profiler] Add the possible reason of SuspendThread failure (#4133)
  • [Profiler] Fix profiler clang-tidy job (#4134)
  • [Profiler] Allow .balloc/.pprof allocations comparison (#4145)
  • [Profiler] Add log about wrapped function (#4167)
  • [Profiler] Log information about secure-execution mode (#4196)

Debugger

  • [Dynamic Instrumentation] display object fields and collection items in log probe (#3947)

Serverless

  • [Serverless] Add support for instrumentation of methods in generic base classes (#4158)

Fixes

  • Add Debug build stage and fix warnings (#4140)

Miscellaneous

  • Add unit tests for all settings (#4115)
  • Use ReadOnlySpan on ITags source code generator. (#4123)
  • [Test Package Versions Bump] Updating package versions (#4128)
  • IntegrationTelemetryCollector should only return changed integrations (#4142)
  • Record enabled products in telemetry (#4143)
  • Properly handle a wrong setup where DD_DOTNET_TRACER_HOME isn't set (#4146)
  • Removed added lines and updated existent one (#4148)
  • Fix ducktype over non public struct fields (#4149)
  • [ASM] Merge IAST directories (#4151)
  • Refactor loader injection rewrite (#4152)
  • Improvements in the startup process. (#4157)
  • Upgrade Mono.Cecil to 0.11.5 (#4166)
  • Headers Tags improvements (#4172)
  • Small updates to telemetry in preparation for V2 (#4180)
  • More telemetry v2 preparation (#4187)

Build / Test

  • Add an additional scheduled run in which we explicitly enable debug mode (#4105)
  • Include signed dlls in windows-tracer-home artifact (#4164)
  • OSX Improvements (#4193)

Changes since 2.30.0

2.30.0

05 May 08:39
d7e2388
Compare
Choose a tag to compare

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

  • [Tracer] Adds support for 128-bit Trace IDs
  • [ASM] Adds custom rules support
  • [Continuous Profiler] Enables timestamps and GC events by default for timeline view

Note
The Datadog .NET Tracer does not support application running in partial trust.

Changes

Tracer

  • [Tracing] add support for 128-bit trace ids (#3744)
  • Change the ownership of the RuntimeMetrics statsd instance (#4060)
  • Make ModuleMetadata thread-safe (#4061)
  • Update MessagePack to 1.9.11 (#4078)
  • Reduce allocations in sampling mechanism tagging (#4085)
  • [Tracer] Add interfaces to standardize operation name and service name calculations across schema versions (#4088)
  • Add support for MySql.Data 8.0.33 (#4109)

CI Visibility

  • [CI Visibility] Rename Intelligent Test Runner tag names (#3909)
  • [CI Visibility] Update ci specs and add codefresh support (#4049)
  • [CI Visibility] Add support for importing code coverage from cobertura and opencover format to the test session. (#4069)

ASM

  • [ASM] Update waf and custom rules (#4053)
  • [ASM] Add methods to location json (#4063)
  • [ASM] Fix ip resolution: some local ips weren't seen as local (#4067)
  • [ASM] Add custom rules support (#4077)
  • [ASM] Add IAST instrumented tests ownership to ASM (#4087)
  • [ASM] Update WAF (#4112)

Continuous Profiler

  • [Profiler] Enable timestamps and GC events by default for timeline view (#3982)
  • [Profiler] Make sure the memory dump is copied when a profiler test failed (#4047)
  • Fix rare and random crash on linux (#4055)
  • Investigate failing test on alpine (#4073)
  • [Profiler] Fix race for endpoint profiling (#4079)
  • [Profiler/Windows] Release HANDLE when Managed thread dies (#4089)

Fixes

  • Remove support for partial trust environment (#4083)
  • Add EditorBrowsableState.Never to types that should never be invoked (#4091)

Build / Test

  • [IAST] Enable deduplication tests on net7 (#3973)
  • Enable crash dumps on Windows (#3975)
  • [Tracer] Update samples for log collection, agentless logging, and logs trace ID correlation (#3994)
  • Update Nuke build to latest (#4000)
  • [Test Package Versions Bump] Updating package versions (#4013)
  • [Tracer] Attribute Schema configuration: Create distinct v0 and v1 span metadata rules (#4031)
  • Update dockerfile to build native code with clang-16 (#4036)
  • Add checksums for release artifacts (#4041)
  • Replace Datadog.Trace.OSX.sln with a solution filter (#4048)
  • [Tracer] Comprehensive package version testing fixes (#4057)
  • Fix CI Visibility source root in Docker based test (#4059)
  • InstrumentationVerification should override the log folder only if enabled (#4066)
  • Setup python3.9 for system tests (#4070)
  • Add obj as a folder exception in the static analysis workflow. (#4071)
  • Add debuglink to linux native lib to ease debugging experience (#4072)
  • Add jetbrains diagnoser to Benchmark tests (#4074)
  • Reduce the pressure on threadpool in the tests (#4086)
  • Option to add Datadog Profiler to the BenchmarkDotNet tests (#4094)
  • [Test Package Versions Bump] Updating package versions (#4096)
  • Fix BenchmarkDotNet tests build warnings (#4110)
  • Allow forcing code coverage in CI (#4113)
  • Stop the flake (#4114)

Miscellaneous

  • RCM refactoring from event model to subscriptions (#3983)
  • [Tracer] Improvement: Make the ServiceNames immutable (#4043)
  • Bump spdlog version (#4044)
  • Exclude more high-cardinality dependencies from telemetry (#4050)
  • Update Minimum required SDK version in Readme (#4092)
  • Skip injecting loader on partial trust (#4108)
  • Add trace::profiler null check (#4116)

Changes since 2.29.0

2.29.0

17 Apr 17:13
d6dc8c0
Compare
Choose a tag to compare

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

Fixes the following issues:

  • Fixes BadImageFormatException that occurred when trace annotations were used in conjunction with DD_TRACE_DEBUG
  • Fixes possible memory leaks

Changes

Tracer

  • [Tracer] Attribute Schema configuration: new configuration and v1 service naming (#4019)

Continuous Profiler

  • [Profiler] Compare fixed and Poisson threshold allocation sampling/upscaling (#4016)
  • [Profiler/Improvement] Make RawSample classes move-only (#4024)
  • [Profiler] Free the error structure on profile_add (#4025)
  • [Profiler] Fix possible memory leak (#4029)
  • [Profiler] Run Profiler Unit tests ASAN with leak detection enabled (#4034)
  • [Profiler] Make sure we catch tests that crashed in CI (#4037)
  • [Profiler] Fix missing CPU samples (#4046)

Fixes

  • Add more nullable annotations to settings objects (#4028)

Build / Test

  • Capture the sample output in IAST tests (#4021)
  • Fix IAST tests (#4027)

Miscellaneous

  • Add WaitForDiscoveryService test helper (#4023)
  • Bump DatadogTestLogger version to 0.0.38 (#4030)
  • Fix the tracer solution for OSX (#4039)
  • Fix BadImageFormatException that occurred when trace annotations were used in conjunction with DD_TRACE_DEBUG (#4045)

Changes since 2.28.0

2.28.0

12 Apr 08:12
b8edb91
Compare
Choose a tag to compare

An issue was found when using v2.28.0 of the Datadog.Trace.Annotations NuGet to instrument methods using attributes, when also setting DD_TRACE_DEBUG=1. Please upgrade to v2.29.0 or greater which resolves the problem.

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

Fixes a native memory leak when using the Continuous Profiler. This leak was introduced in 2.26.0. If you are using the Continuous Profiler with 2.26.0 or 2.27.0, please upgrade to 2.28.0.

Also the tracer now supports

Changes

Tracer

  • [Tracer] Fix ActivityContext not being honored (#3796)
  • [Tracer] DataStreamMonitoring - RabbitMQ support (#3917)
  • [Tracer] Add db.redis.database_index to redis spans (#3941)
  • [Tracer] Fix duplicate logging issue with DirectLogSubmission and Serilog (#3952)
  • [Tracer] Reset the sampling mechanism tag during W3C tracecontext extraction (#3959)
  • [Tracer] Upgrade HotChocolate to Version 13 (#3966)
  • [Tracer] Fix AAS direct log submission log correlation (#3972)
  • [Tracer] Make the querystring length in http.url configurable (#3980)
  • [Tracer] Add nullable annotations to settings (#4009)

CI Visibility

  • [CI Visibility] Fix BenchmarkDotNet random value in job description (#3960)
  • [CI Visibility] - Refactor and changes to improve debugging and to help the datadog logger to extract env-vars. (#3990)

ASM

  • [ASM] Taint StringBuilder.Append() and AppendLine() Methods (#3931)
  • [ASM] Take into account if block exception is a child (#3944)
  • [ASM] Command injection vulnerability detection (#3954)
  • [ASM] Remove weak hashing redundant tests (#3962)
  • [IAST] Add updated source names. (#3988)

Continuous Profiler

  • [Profiler] Keep track of sampled/real exception/lock contention count per type/bucket (#3838)
  • [Profiler] Avoid adding temporary runtime id names in cache (#3958)
  • [Profiler] Don't read ExitTime if the process hasn't exited (#3992)
  • [Profiler] Bump libdatadog version to 2.1.0 (#3993)
  • [Profiler] Fix bug when thread name is set to null or "" (#4005)
  • [Profiler] Fix native memory leaks (#4020)

Debugger

  • [Dynamic Instrumentation] Implemented the Span Probes (#3955)
  • [Dynamic Instrumentation] Evaluation error on metric probe (#4001)

Build / Test

  • [Samples] Add sample to demonstrate instrumentation of an ASP.NET application inside a Windows container (#3798)
  • [CI] Monitor retries and retry AgentMalFunctionTests on NamedPipes (#3887)
  • Swap Samples.DatabaseHelper to use Samples.Shared (#3915)
  • Swap Samples.LargePayload to use SampleHelpers (#3921)
  • Swap DatadogThreadTest to use SampleHelpers (#3922)
  • Swap DogStatsD.RaceCondition to not use Datadog.Trace (#3925)
  • Limit the concurrency in xunit (#3930)
  • Swap to SampleHelpers for LogsInjectionHelper (#3936)
  • Fix TimeIt jobs and replace it with TimeItSharp (#3942)
  • [Tracer] Fix flaky test graphql (#3945)
  • Setup python 3.9 for system tests (#3948)
  • Docker Base Images. Fix snapshot generation and fix draft releases (#3950)
  • Convert RabbitMQ tests to snapshot tests (#3951)
  • Capture full memory dumps instead of minidumps (#3963)
  • Upgrade C++ toolset to v143 (#3964)
  • Split ZipMonitoringHomeLinux task (#3967)
  • Downgrade AWS dotnet7 image (#3969)
  • Update the AspNetCoreTestFixture to let aspnetcore pick a port (#3971)
  • Revert "Downgrade AWS dotnet7 image" (#3977)
  • Temporarily remove python install from system tests (#3979)
  • Disable Microsoft.Data.Sqlite tests on .NET Core 2.1 (#3981)
  • Enable CI Visibility static analysis. (#3984)
  • Disable code coverage except for scheduled builds on master (#3987)
  • Reduce test flakiness in ProbeTests.MethodProbeTest (#3995)
  • Increase log level in AspNetCore2 security sample app (#3997)
  • Improve support of rolling log files in tests (#3998)
  • Attempt to fix the DataStreams test (#4002)
  • Try fix SetDotnetPath (#4003)
  • Fix exploration tests typo (#4006)
  • Remove the GraphQL4 websocket tests (#4010)
  • Start the PipeServer synchronously (#4011)
  • [Tracer] Set GraphQL7 Sample fixed packages version (#4022)
  • [Tracer] Fix test: remove WebSockets tests on GraphQL version 4 (#3999)
  • [Tracer] Add support for Metrics to span metadata (#3968)
  • [Tracer] Adds MySql and NpgSql snapshot tests and files (#3867)

Miscellaneous

  • Replace FMT x86 and x64 builds to a single source folder (#3943)
  • Windows ARM64 support (#3953)
  • [Test Package Versions Bump] Updating package versions (#3957)
  • Remove validation on IIS site names (#3961)
  • Add a "block list" to profiled processes in native profilers (#3965)
  • [Test Package Versions Bump] Updating package versions (#3978)
  • Bump DatadogTestLogger version up to 0.0.37 (#3985)
  • Fix the log level and remove redundant info (#3991)

Changes since 2.27.0

2.27.0

24 Mar 08:51
d9da4df
Compare
Choose a tag to compare

⛔ If you use the Continuous Profiler, please upgrade to v2.28.0 or greater. Release 2.26.0 introduced a native memory leak when using the Continuous Profiler.

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

Tracer

  • Support for isolated functions (.NET 6 and .NET 7) in Azure
  • Support for GraphQL 7
  • Performance improvements in the startup time. We had slowly decreased performances since 2.9.0 by adding more features, we're back to an equivalent state now.

Changes

Tracer

  • Add a size limit to the serialization temp buffer (#3830)
  • [Tracer] add support for GraphQL 7 (#3842)
  • Optimize startup time (#3856)
  • [Tracer] Protect against null Activity TraceId (#3870)
  • [Tracing] parse propagated tags during header extraction (#3872)
  • Initial support for isolated Azure Functions (v4) (#3900)
  • Capture exceptions in Azure Functions (#3905)
  • Exclude App_LocalResources. deps from telemetry (#3906)
  • Performance improvements (#3907)
  • Record SourceContext in direct submission logs (#3910)
  • Add usr.id when propagating (#3912)
  • Add recording of HTTP status code to Azure Functions HTTP triggers (#3914)
  • Capture the querystring in http.url for client HTTP spans (#3935)

CI Visibility

  • [CI Visibility] Update CI Environment Variables spec (#3878)
  • [CI Visibility] - Fixes git parser when using a SSH signature (#3940)

ASM

  • [ASM] Update rules WAF rules to 1.5.2 (#3896)
  • [ASM] Correct casing for tag values in SDK (#3893)
  • [ASM] Optimize http body parsing (#3853)
  • [ASM] Taint String Substring and ToCharArray methods (#3854)
  • [ASM] Taint string.Remove() and string.Insert() methods in IAST (#3877)
  • [ASM] Taint string.Join, ToUpper and ToLower methods in IAST (#3897)
  • [ASM] Instrumentate String.Trim(), String.TrimStart(), String.TrimEnd() in IAST. (#3911)
  • [ASM] Instrument String.PadLeft() and String.PadRight() methods (#3918)
  • [ASM] Add integration tests for global rules switch (#3886)

Continuous Profiler

  • [Profiler ] Fixes in FrameStore (#3861)
  • [Profiler] Add support for Portable PDB in the profiler (#3904)

Debugger

  • [Dynamic Instrumentation] Add metric probe for dynamic instrumentation (#3727)
  • [Dynamic Instrumentation] Deploy dotnet to debugger backend demo applications (#3920)

Miscellaneous

  • [Test Package Versions Bump] Updating package versions (#3759)
  • Improve OSX dev experience (#3863)
  • [Tracer] Implement all system-tests W3C tracecontext behaviors (#3873)
  • Fix modules locking (#3892)
  • Use a wrapper for synchronized access to collections (#3895)
  • DSM - Span and Pathway linking (#3902)
  • [Test Package Versions Bump] Updating package versions (#3929)

Build / Test

  • Swap Samples.Telemetry to use .NET Activity (#3819)
  • Refine CodeOwners (#3860)
  • Fix the clone-repo template for hotfixes (#3866)
  • [Test] Fix flakiness in Aerospike integration test - Attempt 1 (#3890)
  • Add processors benchmarks (#3898)
  • Add support for attach jetbrains products in Benchmark tests (#3903)
  • Remove unused reference to Datadog.Trace in HttpMessageHandler.StackOverflowException (#3923)
  • Fix codeowners file around ASM folders. (#3926)
  • Test Azure Functions out of process on .NET 7 (#3927)
  • Fix a few issues with Samples.Shared (#3934)
  • Fix native compilation warning (#3932)

Changes since 2.26.0

2.26.0

09 Mar 08:24
1e4d942
Compare
Choose a tag to compare

⛔ If you use the Continuous Profiler, please upgrade to v2.28.0 or greater. Release 2.26.0 introduced a native memory leak when using the Continuous Profiler.

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

Adjustments on some previous tracer features, improve CI test skipping scenarios.
Profiler side, handle anonymous and inner named methods.
ASM side, suspicious request blocking is implemented through a consequent waf update.

Changes

Tracer

  • Sort and encod DBM tags and add new tests (#3851)

CI Visibility

  • [CI Visibility] Await git upload metadata before child command start only on test skipping scenarios. (#3827)
  • [CI Visibility] - Improve manual api initialisation. (#3843)

ASM

  • [ASM] Waf block actions configurable via Remote configuration (#3794)
  • [ASM] String concat propagation (#3805)
  • [ASM] Waf update to 1.8.2 (#3822)
  • [ASM] Update IP collection algorithm (#3831)
  • [ASM] Add missing capabilities and other minor corrections (#3855)

Continuous Profiler

  • [Profiler] Add named/anonymous methods scenario (#3817)
  • [Profiler] Bucketize contention events by duration (#3824)
  • [Profiler] Bump libdatadog version to 2.0.0 (#3839)

Build / Test

  • Proposal for standardized storage of installable artifacts (#3762)
  • Bump DatadogTestLogger version (#3833)
  • [CI] Fix the flakiness of TelemetryControllerTests, but not the source of the issue (#3834)
  • [Tracer] Container init job to run for hotfixes (#3844)

Miscellaneous

  • Enable rollforward on minor versions in global.json (#3841)

Changes since 2.24.1

2.24.1

27 Feb 12:08
799d8a4
Compare
Choose a tag to compare

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

Hotfix to fix a potential performance issues on Windows, for .NET Framework apps.

Tracer

  • Stop extracting SourceLink after 100 tries (#3837)

Changes since 2.24.0

2.24.0

24 Feb 09:48
9e9fa13
Compare
Choose a tag to compare

⚠️ This release contains a known issue with DD_DBM_PROPAGATION_MODE. The issue is resolved in version 2.35.0.
Enabling DD_DBM_PROPAGATION_MODE may cause runtime errors in your application if you set the CommandType property on DbCommand to CommandType.StoredProcedure. If you suspect your application or a dependent library is using stored procedures, and you are currently using this release, don't enable DD_DBM_PROPAGATION_MODE until upgrading to 2.35.0+.

Summary

⚠️ On Windows, by default, the profiler log files can be found at the same location as the tracer log files. Starting from this version profiler log files are written to %PROGRAMDATA%\Datadog .NET Tracer\logs instead of %PROGRAMDTA%\Datadog-APM\logs\.

Tracer

  • Added support for publishing init containers that will be used for library injection in kubernetes. The feature isn't yet available though as it requires changes in the datadog agent as well, which will be released next month.

Profiler

  • Reduce CPU consumption on Linux
  • Improve performance of exceptions profiling

Changes

Tracer

  • [Tracer] Fix otel.status_code/otel.library.name from .NET Activity API (#3750)
  • [Tracer] add 128-bit TraceId struct (#3752)
  • [AAS] Bail out from starting processes if API_KEY isn't present (#3775)
  • [Tracer] Fix IDatadogLogger analyzer warnings (#3785)
  • [Tracer] APM and DBM Link Injecting SQL Comment (#3784)
  • [Tracer] Add support for Aerospike 6.0.0 (#3811)

CI Visibility

  • [CI Visibility] - BenchmarkDotNet framework support (#3774)
  • [CI Visibility] - Extract traits recursively in NUnit (#3777)
  • [CI Visibility] - Small changes to the CI Visibility processors. (#3788)
  • [CI Visibility] - Lazy initialise the ITR instance (#3789)
  • [CI Visibility] - Defer await for git upload task (#3825)

ASM

  • [ASM] Instrumented tests: basic setup (#3718)
  • [ASM] Set span type to "vulnerability" for iast spans in console apps. (#3747)
  • [ASM] Weak hashing instrumentation for net462 (#3776)
  • [ASM] Add valueparts without source in vulnerability Json (#3810)
  • [ASM] Weak cipher support for .net framework (#3818)

Continuous Profiler

  • [Profiler] Add allocations recorder (#3753)
  • [Profiler] Reduce memory allocation of the profiler (#3764)
  • [Profiler] Validate exceptions sampling (#3767)
  • [Profiler] Improve .NET exception profiler (#3770)
  • [Profiler] Fix CppCheck version when installing (#3772)
  • [Profiler] Fix flacky tests (#3778)
  • Remove all references to DD_DOTNET_PROFILER_HOME (#3782)
  • [Profiler] Improve building thread stat file path (#3786)
  • [Profiler] Improve Linux stackwalker deadlock detection (#3787)
  • [Profiler] Take cores count into account for CPU profiling (#3793)
  • [Profiler/CI] Remove profiler throughput tests from Github Actions (#3795)
  • [Profiler] Add I/O-bound demo application (#3797)
  • [Profiler] Add CI visibility on profiler AzDo jobs (#3799)
  • [Profiler] Change scenario for better chances to get samples (#3801)
  • [Profiler] Fix bug when retrieving number of cores (#3802)
  • [Profiler] bug fixes (#3806)
  • [Profiler] Increase leak size and fix exception (#3815)
  • [Profiler] Add view for EndpointsCount controller (#3823)

Debugger

  • [Dynamic Instrumentation] Support duration in debugger DSL (#3765)
  • [Dynamic Instrumentation] Addressed a leakage by reusing probe data indices (#3771)

Miscellaneous

  • Extract git.commit.sha and git.repository_url from SourceLink (#3652)
  • Change profiler and native loader default log dir (#3790)
  • Small performance improvements (#3809)

Build / Test

  • Add debugger team as CODEONWERS to missing directories (#3766)
  • Generate container images for Kubernetes Admission Controller library injection (#3769)
  • [Build] Add retries for build and package commands (#3780)
  • Add analyzers for IDatadogLogger usages (#3781)
  • [Build/Test] Limit upload_container_images build stage to individual CI (#3783)
  • [Build/Test] Publish official dd-lib-dotnet-init images on tagged commit (#3791)
  • Fix test trigger on scheduled builds (#3792)
  • [Build/Test] Add system tests for the library injection images (#3803)
  • Fix MongoDb integration tests and bump to latest (#3808)
  • Add test and sample project for .NET Activity API (#3597)

Changes since 2.23.0

2.23.0

08 Feb 17:35
f6fd6f8
Compare
Choose a tag to compare

Summary

Tracer

  • Resolve an issue introduced in 2.14.0 that could lead to the tracer not working after an upgrade of the tracer, if the server had been rebooted in between.
  • Added support for Confluent.Kafka 2.x.

Changes

Tracer

  • PRNG improvements for trace and span ids (#3651)
  • Update TagListGenerator to use new ForAttributeWithMetadataName (#3662)
  • Add an enum extensions source generator (#3700)
  • Add helper source generators for telemetry metrics (#3701)
  • Add Analyzer for checking we don't use a public API (#3704)
  • Add support for Confluent.Kafka 2.x.x (#3710)
  • [Tracing] Converting to and from hex strings (#3715)
  • Update log message with minimum datadog-agent version required for RCM (#3729)
  • Handle multiple empty tracestate headers in W3CTraceContextPropagator (#3745)

CI Visibility

  • [CI Visibility] - Fix NUnit integration (#3696)
  • [CI Visibility] Adds support for NUnit TearDown attributes (#3713)
  • [CI Visibility] - CI specs updates (#3719)
  • [CIVisibility] - Replace the datacollector logger error calls with warnings (#3723)
  • [CI Visibility] - Add retries support for IOException in the coverage collector (#3726)
  • [CI Visibility] - Ensure dd-trace uses same settings as target process (#3728)
  • [CI Visibility] - Simpler CIVisibility initialization for the dd-trace runner (#3736)
  • [CI Visibility] - Avoid sending the global code coverage tag if we have ITR enabled (#3740)
  • [CI Visibility] - Improve test source start line for CI Visibility UI (#3755)

ASM

  • [ASM] Call site instrumentation (#3453)
  • [ASM] Added parent span Id to vulnerability json. (#3684)
  • [ASM] SQL injection vulnerability detection (#3694)
  • [ASM] User blocking (#3610)
  • [ASM] SDK to track user events for Account Takeover and Business Logic abuse (#3703)
  • [ASM] Update format of vulnerabilities Json. (#3705)
  • [ASM] Fix waf library loader unit tests (#3706)
  • [ASM] Fix rcm integration tests flakiness (#3714)
  • [ASM] Fixed typo in function parameter (#3720)
  • [ASM][GIT] Fine tuned code owners (#3721)
  • [ASM] Aspects code generator tests (#3741)
  • [ASM] upgrade WAF to 1.7.0 and WAF rules to 1.5.0 (#3742)
  • [ASM] dispose context and nullchecks framework side (#3749)
  • [ASM] Correct copy / paste error (#3760)
  • [ASM] Removed unnecesary aspects file (#3711)

Continuous Profiler

  • Move profiler CI from GitHub Actions to AzDo (#2880)
  • [Profiler] Measure profiled and real allocations count/size (#3698)
  • [Profiler] Migrate profiler windows integration tests to AzDo (#3737)
  • [Profiler] Fix integration tests not running (#3748)
  • [Profiler] New scenario: Add endpoint with dots (#3756)
  • [AAS/Profiler] Allow sending profiles if Tracer is deactivated (#3697)

Debugger

  • [Debugger] Limit snapshot size (#3709)
  • [Dynamic Instrumentation] Perf improvements + Added probe metadata payload (#3725)
  • [Dynamic Instrumentation] Display interface properties in snapshot (#3761)

Miscellaneous

  • Only Check Clsid32 Key If Tracer < 2.14 (#3549)
  • Stop using the CorProfiler singleton in rejit logic (#3670)
  • [Test Package Versions Bump] Updating package versions (#3691)
  • Clean up codebase using clang-tidy (#3716)
  • Adds the ci crank-import command (#3722)
  • Wrap DbCommand.Connection getter with a try/catch (#3730)
  • [Tracer] Check that the file in DD_NATIVELOADER_CONFIGFILE exists before using it (#3738)
  • Record the MVID of a loaded assembly in dependency telemetry (#3746)

Build / Test

  • Add comparison of execution benchmarks posting to PR (#3672)
  • Remove sync-over-async from AWS integration and fix flake (#3695)
  • Add tests that we never write general ambient env vars to the logs (#3712)
  • Force all tests to run as part of scheduled builds on master (#3724)
  • Fix osx folder in GetNativeLoaderPath() (#3733)
  • Add throughput tests for manual instrumentation scenarios (#3734)
  • Make the log output digestable by system tests dashboard (#3739)

Changes since 2.22.0

2.22.0

24 Jan 12:02
6daab3a
Compare
Choose a tag to compare

Summary

⚠️ If you're updating the MSI from version 2.13.0 or earlier and you are missing traces, you should restart the machine after updating. This issue has been fixed in 2.23.0.

Tracer

  • Adds beta support for configuration DD_TRACE_OTEL_ENABLED. When set to true and automatic instrumentation is enabled for the application, you can use the OpenTelemetry API to generate Datadog spans. This setting will also allow you to get traces for libraries that we do not instrument yet if they do use System.Diagnostics to report their activity. This feature is currently in beta and we welcome feedback to improve it.

Continuous Profiler

  • Fix deadlock found in 2.21 (Linux)
  • Live heap profiling beta with DD_PROFILING_HEAP_ENABLED set to 1

Changes

Tracer

  • [Tracer] Add OpenTelemetry Resources as span tags (#3572)
  • [Tracer] W3C Trace Context part 3: include additional vendor values in tracestate header (#3578)
  • [Tracer] W3C Trace Context part 4: change default header settings (#3583)
  • [Tracer] Fix sending multiple logs via DirectLogSubmission when using sub-loggers (#3589)
  • [Tracer] Detect the actual Redis server when connecting to a cluster (#3594)
  • [Tracer] Add support for Couchbase 3.4.1 (#3596)
  • [Tracer] Small clean-up in TraceContext.AddSpan() (#3598)
  • [Tracer] Allow throwing exception of type CallTargetBubbleUpException in call target integrations (#3608)
  • [Tracer] Fix Remote Configuration Service Name not being sent as lower-case + added more DEBUG-level logging (#3614)
  • [Tracer] W3C Trace Context part 5: propagate tracestate in version-mismatch scenario (#3630)
  • [Tracer] Add missing private ctors to singleton propagators (#3631)
  • [Tracer] Log the version of the native tracer in the managed logs (#3643)
  • [Tracer] Wait for ReJIT request call to complete before returning from ModuleLoadFinished profiler callback (#3650)
  • [Tracer] Support standardized name for polling env var (#3653)
  • [Tracer] Simplify ThreadSafeRandom API (#3656)
  • [Tracer] Add a 100ms timeout on rejit request (#3664)

CI Visibility

  • [CI Visibility] Reduce integrations required for NUnit testing framework (#3577)
  • [CI Visibility] Code Coverage Payload Format v2 (#3588)
  • [CI Visibility] Replace XUnit sync integration for flushing with an async one. (#3591)
  • [CI Visibility] Update spec for azurepipelines with required env vars for correlation (#3592)
  • [CI Visibility] Port some sync thread primitives to the async version (#3609)
  • [CI Visibility] Fixes multiple thread access to the global coverage List<> with a lock (#3611)
  • [CI Visibility] Remove stdout output from debug level in the CoverageCollector (#3612)
  • [CI Visibility] Change GetAwaiter().GetResult() with AsyncUtil.RunSync() (#3615)
  • [CI Visibility] Refactor MSTest integration and add support for nuget version 3.x (#3616)
  • [CI Visibility] Enable IntelligentTestRunner configuration request by default (#3647)
  • [CI Visibility] Fix dd-trace arguments handling (#3676)
  • [CI Visibility] Add Logs to the dd-trace command (#3683)
  • [CI Visibility] Modify the .deps.json file only when the Datadog.Trace.dll is copied (#3686)
  • [CI Visibility] Fix casting error on ITR skip validator (#3689)
  • [CI Visibility] Small changes to improve stability (#3693)

ASM

  • [ASM] Stop throwing exception on unknown objects (#3553)
  • [ASM] Adding missing usings to dispose (#3622)
  • [ASM] Fix access violation memory exception (#3666)

Continuous Profiler

  • [Profiler] Fix sanitizer jobs (#3181)
  • [Profiler] Update the architecture to support heap profiling (#3445)
  • [Profiler] Add MetricsRegistry (#3576)
  • [Profiler] Detect and fix CPU overlaps (#3623)
  • [Profiler] Add numeric labels (#3624)
  • [Profiler] Fix warnings (#3634)
  • [Profiler] Fix using nanoseconds instead of milliseconds (#3638)
  • [Profiler] Provides an alternative stackwalk (#3642)
  • [Profiler] Review log messages (#3648)
  • [Profiler] Add a test scenario where short lived threads are created over and over again (#3649)
  • [Profiler] Allow multiple scenarios to run sequentially in BuggyBits (#3655)
  • [Profiler] Fix deadlock due to TLS initialization while unwinding (#3661)
  • [Profiler] Fix text error (#3667)
  • [Profiler] Check max CPU/Wall time consumption in tests (#3673)
  • [Profiler] Remove internal metrics (#3678)

Debugger

  • [Dynamic Instrumentation] Added missing tags to RcmClientTracer (#3405)
  • [Dynamic Instrumentation] Added messages to erroneous probe statuses (#3582)
  • [Debugger] Run integrations tests with different debug type and optimizations (#3618)
  • [Dynamic Instrumentation] Implement expression evaluator, conditions and log probes (#3688)
  • [Debugger] Add default sampling rate for log probes (#3692)

Serverless

  • Add delay to serverless tests to reduce flakiness (#3619)

Fixes

  • Modernize C++ code (#3551)

Build / Test

  • [Test Package Versions Bump] Updating package versions (#3540)
  • Add integration tests for OWIN apps hosted on Microsoft.Owin.Host.SystemWeb (#3558)
  • Exclude some processes from being profiled in nuke targets (#3568)
  • Move maximum possible tasks from Datadog.Trace.proj to Nuke (#3573)
  • Increase timeout for agent malfunction flaky test. (#3574)
  • Improves ExitCodeException (#3580)
  • Upload crank throughput results to AzDo artifacts (#3581)
  • Removes Task.Delay dependency on TaskContinuation tests (#3584)
  • Minor build fixes when testing all package versions (#3590)
  • [Tracer/Native loader] Run tracer and native loader native unit tests (#3593)
  • Update global.json to pin to the only supported version of the SDK (#3601)
  • [Test Package Versions Bump] Updating package versions (#3602)
  • Add testing against multiple package versions for OpenTelemetry.Api (#3604)
  • Adds debugger break environment variable (#3613)
  • Allow to build native code in Debug on Linux from Nuke (#3627)
  • Write throughput results as a PR comment (#3628)
  • Rework build to always build for AnyCPU instead of x64/x86 (#3632)
  • Bump sdk used in CI to 7.0.101 (#3633)
  • [Tracer] Update span metadata rules documentation with integration names (#3635)
  • Allow azure upload via a variable (#3637)
  • Fix CodeQL action and GitLab build (#3645)
  • Fix execution time (startup time) benchmarks and save artifacts (#3654)
  • [Tests] Refactor ASM integration tests to use IClassFixture for application and agent (#3657)
  • Fix path to FakeDbCommand in execution time benchmarks (#3658)
  • Drop SDK in global.json down to 7.0.100 (#3659)
  • Add missing dependencies to build_runner_tool_and_standalone stage (#3665)
  • [Tests] Enable the parametric test suite from the system-tests repo (#3675)
  • Log the PID in more test paths (#3677)

Miscellaneous

  • Add instance info to the IL dump (#3660)
  • [Tracer] Fix the Datadog ServiceName for spans generated by different ActivitySource's (#3663)
  • RCM requests should normalize 'service' and 'env`, but not other tags (#3669)

Changes since 2.21.0