Skip to content

Releases: DataDog/dd-trace-dotnet

1.27.1

16 Jun 21:37
377dc7a
Compare
Choose a tag to compare

Fixes

  • Fix possible crash condition in .NET Framework 4.5, 4.5.1, and 4.5.2 (#1528, #1539)

Build

  • Update build pipelines to run in release/* and hotfix/* branches where appropriate (#1545, #1546)

Changes since 1.27.0

1.27.0

02 Jun 09:30
c8dc636
Compare
Choose a tag to compare

Changes

  • Add Linux ARM64 support (auto instrumentation supported on .NET 5 Only) (#1449)
  • Add MSMQ automatic instrumentation integration (Only enabled for CallTarget instrumentation) (#1463)
  • Add Confluent.Kafka automatic instrumentation integration (Only enabled for CallTarget instrumentation) (#1444, #1492)
  • Exclude well-known URLs from tracing to avoid multiple top level spans in AAS (#1447)
  • Optimize log injection with NLog and log4net (#1475, #1489)
  • _dd.origin tag improvements for CIApp (#1481)
  • Cache MessagePack Span tag keys in UTF-8 (#1482)
  • Add [DuckInclude] attribute (#1487)

Fixes

  • Handle exceptions in async integrations in CallTarget (#1458)
  • Fix Call opcode in DuckTyping on struct targets (#1469)
  • Refactor DisposeWithException invocations to remove null conditional operator (#1493)
  • Add runtime-id tag to metrics to improve Fargate support (#1496)
  • Remove the static collection in the HTTP module (#1498)

Build / Test

  • Remove stale AAS tests (#1466, #1467)
  • Add Windows container sample (#1472)
  • Add tests for IIS classic mode (#1462)
  • Add CIApp test framework integrations test suite (#1317)
  • Add and enforce copyright headers (#1445, #1485)
  • Clean up project files (#1464, #1468)
  • Add GH Action to auto-create benchmark branch (#1483)
  • Add throughput test for ARM64 (#1490)
  • Convert ASP.NET tests to use Snapshot Testing with VerifyTests/Verify
  • Fix .vcxproj file for latest msbuild version (#1495)
  • Remove a few benchmarks to make the pipeline faster (#1497)
  • Increase crank duration to 4 minutes (#1505)

Changes since 1.26.3

1.26.3

11 May 15:50
9e445f9
Compare
Choose a tag to compare

⚠ Note: With this release, TracingHttpModule is automatically loaded into ASP.NET applications. If you were adding it manually from your web.config file, make sure to remove the relevant part.

Fixes

  • Fix crash in the ASP.NET integration when running in IIS in classic mode (#1459)
  • Fixes dynamically emitted methods signatures (#1455, fixes #1232)

Build / Test

  • Add benchmarks for log4net and nlog (#1453)
  • Update CoreCLR headers from dotnet/runtime v5.0.5 tag (#1451)
  • Adds the FeatureTracking tool and CIApp implementation (#1268)

Changes since 1.26.2

1.26.2

10 May 16:11
9d9bb06
Compare
Choose a tag to compare

⛔ Due to an application-breaking bug, do NOT install this version if you run IIS in classic mode. This issue is fixed in version 1.26.3. Users of IIS in integrated mode are not affected.

⚠ Note: With this release, TracingHttpModule is automatically loaded into ASP.NET applications. If you were adding it manually from your web.config file, make sure to remove the relevant part.

Changes

  • Reduce overhead when using log injection (DD_LOGS_INJECTION) with Serilog (#1435, #1450)
  • Use the profiler API instead of the IIS configuration to register the ASP.NET integration in TracingHttpModule (#1280)
  • Various optimizations (#1420, #1425, #1434, #1437, #1448)
  • Allow calltarget instrumentation of nested classes (#1409)
  • Add debug logs to help diagnose partial flush issues (#1432)
  • Add execution time logs for native callbacks (#1426)
  • Upgrade LibLog to 5.0.8 (#1396)

Fixes

  • Remove obsolete "Using eager agent writer" warning at startup (#1441)
  • Fix wrong service name when a DbCommand implementation is named "Command" (#1430, fixes #1282)

Build / Test

  • Run calltarget integration tests only with inlining (#1439, #1452)
  • Clean up the PrepareRelease tool (#1442)
  • Stop using external domains in integration tests (#1438)
  • Prevent dependabot from opening PR's against the Microsoft.Build.Framework NuGet package (#1427)
  • Remove useless dependency from benchmark project (#1428)
  • Fix a build issue with the MSI (#1423)

Changes since 1.26.1

1.26.1

23 Apr 12:59
76fb62f
Compare
Choose a tag to compare

⛔ Due to an application-breaking bug, do NOT install this version if you run IIS in classic mode. This issue is fixed in version 1.26.3. Users of IIS in integrated mode are not affected.

Changes

  • Serialize tags/metrics in a single pass to improve performance (#1416)
  • Add Ducktype reverse proxy for implementing interfaces indirectly (#1402)

Fixes

  • Don't throw or log exceptions in TryDuckCast methods (#1422)
  • Fix git parser on really big pack files (>2GB) in CIApp (#1413)

Build / Test

  • Reinstate the consolidated multi-stage build pipeline (#1363)
  • Enable endpoint routing in AspNetCore benchmark (#1418)
  • Re-enable AspNet integration tests in CI (#1414)
  • Update NuGet packages in integration tests, under existing instrumentation version ranges (#1412)

Changes since 1.26.0

1.26.0

20 Apr 08:34
36f30ef
Compare
Choose a tag to compare

⛔ Due to an application-breaking bug, do NOT install this version if you run IIS in classic mode. This issue is fixed in version 1.26.3. Users of IIS in integrated mode are not affected.

Changes

  • Compute top-level spans on the tracer side (#1302, #1303)
  • Add support for flushing partial traces (#1313, #1347)
  • Enable Service Fabric Service Remoting instrumentation out-of-the-box (#1234)
  • Add log rotation for native logger (#1296, #1329)
  • Disable log rate-limiting by default (#1307)
  • CallTarget refactoring and performance improvements (#1292, #1305, #1279)
  • CIApp: Add a commit check before filling the commiter, author and message data (#1312)
  • Update ASP.NET / MVC / WebApi2 Resource Names (#1288)
  • Update ASP.NET Core Resource Names (#1289)
  • Report tracer drop-rate to the Trace Agent (#1306, #1350, #1406)
  • Update URI "cleaning" algorithm to glob more identifier-like segments and improve performance (#1327)
  • Upgrade Serilog & Serilog.Sinks.File Vendors (#1345)
  • Update OpenTracing dependency from 0.12.0 to 0.12.1 (#1385)
  • Include PDB symbols in MSI installer, and linux packages (#1364, #1365)
  • Generate NuGet package symbols (#1401)
  • Improve DD_TRACE_HEADER_TAGS to decorate web server spans based on response headers (#1301)

Fixes

  • Fix Container Tagging in Fargate 1.4 (#1286)
  • Increase buffer size to avoid edge cases of span dropping (#1297)
  • Don't set the service name in the span constructor (#1294)
  • Replace Thread.Sleep with Task.Delay in dogstatsd (#1326, #1344)
  • Fix double-parsing not using invariant culture (#1349)
  • Fix small sync over async occurrence in DatadogHttpClient (#1348)
  • Delete accidentally pushed log file (#1408)

Build / Test

  • Add additional ASP.NET Core tests + fix response code bug (#1269)
  • Minor build improvements (#1295, #1352, #1359, #1403)
  • Crank importer and pipeline (#1287)
  • Add benchmarks for calltarget (#1300)
  • Define benchmarks scheduled runs in yaml (#1299, #1359)
  • Call a local endpoint in DuplicateTypeProxy test (#1308)
  • Fix components in LICENSE-3rdparty.csv file (#1319)
  • Enable JetBrains Tools in the Benchmarks projects (#1318)
  • Started work on a consolidated build pipeline (#1320, #1335)
  • Add Dependabot for keeping dependencies up to date (#1338, #1361, #1387, #1399, #1404)
  • Improvements to flaky tests (#1271, #1331, #1360, #1400)
  • Add further test resiliency against assembly loading issues (#1337)
  • Additional testing for TagsList behaviour (#1311)
  • Fix native build to allow specifying configuration (#1309, #1355, #1356, #1362)
  • Add benchmark for Serilog log injection (#1351)
  • Fix Datadog.Trace.Tests.DogStatsDTests.Send_metrics_when_enabled (#1358)
  • Don't run Unit test or runner pipelines on all branch pushes (#1354)
  • Add additional test for ContainerID parsing (#1405)
  • Fixes the CMake version 3.19.8 in CMakeLists (#1407)

Changes since 1.25.0

1.25.2-prerelease

02 Apr 20:29
45171ff
Compare
Choose a tag to compare
1.25.2-prerelease Pre-release
Pre-release

Changes

  • Compute top-level spans on the tracer side (#1302, #1303)
  • Add support for flushing partial traces (#1313)
  • Enable Service Fabric Service Remoting instrumentation out-of-the-box (#1234)
  • Add log rotation for native logger (#1296)
  • Disable log rate-limiting by default (#1307)
  • CallTarget refactoring and performance improvements (#1292, #1305, #1279)
  • CIApp: Add a commit check before filling the commiter, author and message data (#1312)
  • Update ASP.NET / MVC / WebApi2 Resource Names (#1288)

Fixes

  • Fix Container Tagging in Fargate 1.4 (#1286)
  • Increase buffer size to avoid edge cases of span dropping (#1297)
  • Don't set the service name in the span constructor (#1294)
  • Replace Thread.Sleep with Task.Delay in dogstatsd (#1326)

Build / Test

  • Add additional ASP.NET Core tests + fix response code bug (#1269)
  • Minor build improvements (#1295)
  • Crank importer and pipeline (#1287)
  • Add benchmarks for calltarget (#1300)
  • Define benchmarks scheduled runs in yaml (#1299)
  • Call a local endpoint in DuplicateTypeProxy test (#1308)
  • Fix components in LICENSE-3rdparty.csv file (#1319)
  • Enable JetBrains Tools in the Benchmarks projects (#1318)

Changes since 1.25.0

1.25.0

22 Mar 17:38
1b718dc
Compare
Choose a tag to compare

Changes

  • Runtime metrics are publicly available. They can be enabled by setting the DD_RUNTIME_METRICS_ENABLED environment variable to 1. For more information: https://docs.datadoghq.com/tracing/runtime_metrics/dotnet/

  • Changes in the trace buffering logic (#1151) :

    • Traces are now serialized as soon as possible, instead of every second. This reduces the lifetime of Span objects, which in turn should decrease the number of gen 1/2 garbage collections
    • Whenever adding a trace would cause the buffer to overflow, the contents are immediately flushed. This should reduce the number of dropped traces for customers with a very large amount of spans
  • Optimizations in the native profiler (#1224, #1217, #1215)

  • Duck-typing: rename typing cast methods to better reflect the intent (#1220), and add a DuckIgnore attribute (#1257)

  • Disable log rate limit when debug logging is enabled (#1239)

  • CallTarget instrumentation:

    • Add support for Redis (#1230)
    • Add support for GraphQL (#1241)
    • Add support for MongoDB (#1214)
    • Add support for ASP.NET MVC and WebAPI (#1208)
    • Add support for CurlHandler (#1252)
    • Add support for Elasticsearch (#1248)
    • Add support for RabbitMQ (#1186)
    • Add support for WCF (#1272)
    • Refactor HttpMessageHandler-based instrumentations (#1258) and enable them by default (#1277)
    • Add fast-path for integrations with 7 or 8 parameters (#1261)
    • Enable inlining by default (#1276)
    • Change log severity (#1278)
  • Various changes to CI integration (#1242, #1247, #1251, #1244)

Fixes

  • Fix some log messages (#1240)
  • Status was incorrectly reported for NUnit tests with no assertions (#1235)
  • Strengthen type check in the method resolution (#1225) and ducktyping (#1291). This should fix some BadImageFormatException errors when loading assemblies into different load contexts
  • Remove sync-over-async when communicating to the agent through named pipes in AAS (#1218)
  • Calltarget:
    • Don't call FindMemberRef when the signature is empty (#1259)
    • Remove useless instruction in the emitted IL (#1267)
    • Properly return a faulted task when an exception is thrown in an instrumented async method (#1270)

Build / Test

  • Update Moq to version 4.16.0 and Xunit to version 2.4.1 (#1227, #1231)
  • Update .NET SDK version to 5.0.103 (#1237)
  • Update log4net to 2.0.12 (#1243)
  • Fix Xunit serialization in tests (#1236)
  • Update the automatic logs injection sample apps (#1195)
  • Add a Service Fabric sample app (#1190)
  • Improve ASP.NET integration tests (#1246)
  • Fix solution load deadlock for Rider on non-Windows OS (#1256)
  • Fix build errors in CallTargetNativeTest (#1254)
  • Update 3rd party license file (#1260)
  • Enable WCF integration tests (#1273)
  • Fix flaky tests (#1262, #1263, #1264, #1265, #1266)

Changes since 1.24.0

1.24.0

23 Feb 09:15
b667f42
Compare
Choose a tag to compare

Changes

  • Add support for automatic instrumentation of the synchronous HttpClient.Send() API available in .NET 5.0. (#1162)
  • Add aspnet.area tag to requests when instrumenting using ASP.NET MVC and WebApi2 integration (#1183)
  • Enable rate-limiting of diagnostic log messages. (#1152, #1207)
    • By default, each diagnostic log message written by the tracer will now be written a maximum of once per 60s. This rate can be controlled by the DD_TRACE_LOGGING_RATE. Setting DD_TRACE_LOGGING_RATE=0 disables log rate limiting.
  • CallTarget automatic instrumentation migrations:
    • Add base DBCommand async overloads (#1206)
    • ADO.NET MySqlData client version 6 (#1184)
    • ADO.NET Microsoft.Data.Sqlite and System.Data.SQLite
    • ADO.NET Oracle.ManagedDataAccess (#1193)
    • WebRequest (#1204)
  • Add support for NUnit TestCase custom name (#1213)

Fixes

  • Refactor to remove a code path that is no longer used in the Datadog.Trace.AspNet library (#1160)
  • Fix RequestReJIT deadlock. Only an issue on CallTarget instrumentation paths in integration tests (#1203)
  • Make the diagnostic log fully fire-and-forget, to avoid creating duplicate Tracer instances (#1169)
  • Update README with current links (#1200)
  • Fix an xmldoc comment (#1209)
  • Change test.traits format following the CiApp specs. (#1221)

Build / Test

  • Build improvements
    • Fix parallelization issues in some integration tests (#1198)
    • Fix source of occasional deadlocks in integration tests (#1192)
    • Change the project folder structure for Http instrumentations (#1196)
    • Fix dependency requirements for macOS profiler build (#1202)
    • Update stylecop to latest (#1216)
    • Use release artefacts in package.sh (#1222)
    • Enable optimizations when building the profiler (#1223)
    • Update .NET SDK version used in build (#1228)
  • Testing improvements
    • Fix environment variables overwrite. (#1182)
    • Add Log4Net regression test to simulate the IIS PreStartInit (#1160)
    • Add integration tests for new aspnet.area tag (#1183)
    • Fix diagnostic warnings raised by xUnit (#1197)
    • Remove the Analyzed Span flag on Benchmarks instrumentation (#1179)
    • Add success/failure and timing information to tests (#1210)
    • Switch integration tests to release mode (#1212)

Changes since 1.23.0

1.23.0

03 Feb 17:25
6ceaddd
Compare
Choose a tag to compare

Changes

  • Add new integration for the WebRequest.GetRequestStream API. This enables instrumentation of POST requests for the WebRequest integration (#1106)
  • Add configuration setting DD_TRACE_SERVICE_MAPPING to override the service name for automatic instrumentation representing an external service. By default, external services are assigned the service name <application_name>-<integration>, such as my-application-http-client and my-application-mongodb. This setting configures the entire final service name (#1142)
    • Example: DD_TRACE_SERVICE_MAPPING=mysql:main-mysql-db renames my-application-mysql service to main-mysql-db
  • Update CI App tags (#1145)
  • Changes for Azure App Services environment:
    • Add Site Extension Version tag to spans (#1149)
    • Enable tracer and runtime metrics (#1174)
    • Use named pipe to determine agent process startup (#1176)
    • Enable agent debug logs when DD_TRACE_DEBUG set (#1178)
  • CallTarget automatic instrumentation migrations:
  • Update vendored DogStatsD client to v6.0.0 (#1143)

Fixes

  • Disable automatic logs injection during IIS PreStartInit phase (#1157)
  • Fix the WinHttpHandler CallTarget instrumentation (#1170)
  • Use Command object to populate MongoDB query tag (#1138)
  • Fix standard input/output redirection in runner tool (#1135)
  • Remove Analyzed span tag from CIApp spans (#1144)
  • CallTarget instrumentation memory leak fix (#1177)
  • Fix ActiveScope restore for CallTarget async integrations (#1134)
  • Update log messages to use structured logging (#1163)

Build / Test

  • Build improvements
    • Fix packages build pipeline (#1155, #1158)
    • Fix Datadog.Trace.Minimal.sln (#1159)
    • Improve PrepareRelease tool (#1141)
    • Resolve .NET 5 image certificate issue (#1175)
    • Fix drive space issue (#1171)
    • Hide EOL .NET Core build warnings for test applications (#1152)
    • Add MacOS profiler to runner tool (#1136)
  • Integration test improvements
    • Build and test ARM64 automatic instrumentation in CI (#1114, #1166)
    • Add VB tests for SQL Server (#1137)
    • Reduce number of Skipped integration tests (#1004)
    • Add CIApp Specs tests (#1154)
    • Publish the profiler logs as artifacts instead of tailing them to standard out (#1181)

Test

Changes since 1.22.0