Releases: DataDog/dd-trace-dotnet
1.27.1
1.27.0
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)
1.26.3
⚠ 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
1.26.2
⛔ 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)
1.26.1
⛔ 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
1.26.0
⛔ 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)
- See the documentation for instructions on enabling this feature.
- 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)
- See the documentation for instructions on enabling this feature.
- Update ASP.NET Core Resource Names (#1289)
- See the documentation for instructions on enabling this feature.
- 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
withTask.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)
1.25.2-prerelease
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
withTask.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)
1.25.0
Changes
-
Runtime metrics are publicly available. They can be enabled by setting the
DD_RUNTIME_METRICS_ENABLED
environment variable to1
. 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
-
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:
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)
1.24.0
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
. SettingDD_TRACE_LOGGING_RATE=0
disables log rate limiting.
- 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
- CallTarget automatic instrumentation migrations:
- 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)
1.23.0
Changes
- Add new integration for the
WebRequest.GetRequestStream
API. This enables instrumentation of POST requests for theWebRequest
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 asmy-application-http-client
andmy-application-mongodb
. This setting configures the entire final service name (#1142)- Example:
DD_TRACE_SERVICE_MAPPING=mysql:main-mysql-db
renamesmy-application-mysql
service tomain-mysql-db
- Example:
- Update CI App tags (#1145)
- Changes for Azure App Services environment:
- 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
- Integration test improvements