Releases · DataDog/dd-trace-cpp

v2.0.0

What's Changed

  • fix: Apply "version" tag only when the span service name matches the default service name by @zacharycmontoya in #157
  • feat!: Change default value of DD_TRACE_RATE_LIMIT to 100 by @zacharycmontoya in #159
  • feat!: Set a default service name (DD_SERVICE) when no service is configured by @zacharycmontoya in #158
  • refactor!: expose telemetry module by @dmehala in #166
  • fix: telemetry support for sub-seconds intervals by @dmehala in #168
  • Properly support setting DD_TRACE_TRANSPORT to "none" by @kristjanvalur in #172
  • fix: Remote config service/env validation by @zacharycmontoya in #177
  • perf: parse w3c traceparent using a custom parser by @dmehala in #178
  • fix(telemetry): Handle empty configuration payload properly by @dmehala in #186
  • feat: store tracer configuration in an in-memory file by @dmehala in #184
  • feat: add telemetry logs by @dmehala in #185
  • feat!: default to null logger by @dmehala in #187
  • feat: add baggage API by @dmehala in #179
  • fix(sampling): update condition by @dmehala in #198
  • deps(nlohmann-json): upgrade to 3.12.0 by @dmehala in #210
  • perf: improve mutex contention by @dmehala in #208
  • feat(telemetry): track tracer and telemetry usage by @dmehala in #209
  • feat: support origin detection by @dmehala in #214
  • feat: support additional cgroup formats for container-id parsing by @zacharycmontoya in #222
  • feat: support disablement of APM Tracing (the product) by @dmehala in #224
  • fix(system-tests): set end time when a span is closed by @dmehala in #228
  • deps(nlohmann-json): FetchContent rely on find_package by @dmehala in #231
  • fix: edge cases parsing of DD_TAGS by @dmehala in #233
  • fix(rc): improve trace sampling rules parsing by @dmehala in #232
  • fix(rc): rework remote configuration handling by @dmehala in #234
  • fix(rc): handle null values in RC APM Tracing payloads by @dmehala in #236
  • feat(telemetry): report malformed baggage header by @rachelyangdog in #240
  • Replace Abseil extension with bazel_dep and eliminate source patching by @mmorel-35 in #243
  • chore(cmake): overall improvements by @dmehala in #242

New Contributors

Full Changelog: v1.0.0...v2.0.0

v1.0.0

This version introduces breaking changes and improvements. There is no special significance behind the version number, the shift to v1.0.0 reflects breaking changes and new feature updates.

Breaking Changes

  • API Update: Major updates to the tracer API. This may require modifications to existing integrations. #131 by @dmehala
  • Separation of public and private headers: Public and private headers have been reorganized, leading to a cleaner structure. Public headers are now located in include/ directory. #144 by @dmehala

What's Changed

  • Bug Fix: Trimmed inspected headers to improve performance and accuracy. #137 by @dmehala
  • New Feature: Ensured that tracecontext headers take precedence over Datadog headers (AIT-10281). #142 by @zacharycmontoya
  • Refactor: Refined Remote Configuration support to enhance stability. #130 by @dmehala
  • Dependency Update: Bumped libcurl to version 8.8.0. #135 by @dmehala

New Contributors

We are thrilled to welcome the following new contributors to the project:

Full Changelog: Compare v0.2.2...v1.0.0

v0.2.2

This update includes several important fixes

Fixes

  • fix: better handling of invalid headers by @dmehala in #132
  • fix: regression in sampling delegation handling by @dmehala in #133

Full Changelog: v0.2.1...v0.2.2

v0.2.1

This update bring significant improvements to the functionality, compatibility, and flexibility of dd-trace-cpp. We encourage all users to update to the latest version to take advantage of these enhancements and fixes. Below is a comprehensive list of meaningful changes included in this release:

New Features

  • Windows Support: We are pleased to announce that dd-trace-cpp now supports Windows, broadening the range of environments in which it can be used. #119 by @dmehala
  • Datadog/W3C interoperability: This enhancement prepare ground for better interoperability between Datadog and W3C Tracecontext propagation style. #115 by @dmehala
  • Remote Config Sampling Rules: This feature adds support for remote configuration of sampling rules, providing more control over how traces are sampled. #116 by @dmehala
  • Expose Numeric Tags: This enhancement allows users to set numeric tags, providing greater flexibility and insight into your trace data. #111 by @Anilm3
  • Report Host Information: Host informations are now included in telemetry reports, enhancing the granularity and utility of collected data. #118 by @dmehala

Bug Fixes

  • Glob Matching: Fixed an issue with case sensitivity in glob matching, ensuring consistent behavior across tracers. #112 by @dmehala
  • Remote Configuration polling interval: Resolved a bug allowing DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS to accept floating-point input, allowing sub-second polling interval of remote configuration. #123 by @dmehala

Full Changelog: v0.2.0...v0.2.1

Thank you to all contributors who made this release possible!

New Contributors

v0.2.0

What's Changed

  • Implemented support for APM Remote Configuration by @dmehala (#74).
  • Enhanced telemetry reporting with integration and integration_version by @dmehala (#82).
  • Introduced sampling delegation by @dmehala @dgoffredo (#59).
  • Added support for DD_TAGS via dynamic configuration by @dmehala (#94).
  • Added support for DD_TRACE_ENABLED via dynamic configuration through by @dmehala (#96).
  • Applied SET(CURL_ZLIB OFF) in the build process by @dgoffredo (#99).
  • Integrated active configuration feature by @dmehala (#97).
  • Bazel-related chore: Added MODULE.bazel files for bzlmod by @mmorel-35 (#102).
  • Fixed splitting of DD_TAGS by space or comma by @dmehala (#105).

Breaking Changes

  • Renamed config.defaults.* to config.* e.g config.defaults.service -> config.service

Full Changelog: v0.1.12...v0.2.0

v0.1.12

This release contains the following changes:

  • The default trace propagation style is now "datadog, tracecontext" instead of "datadog" (#72).
  • When "tracecontext" is among the configured propagation styles, the tracestate header will not be ignored in some cases where previously it would have been ignored (#72).
  • The tracer now generates 128-bit trace IDs by default (#71).
  • Requests made to the Datadog Agent now have a configurable timeout (#66).
  • Internal telemetry sends less data on tracer startup (#68).

v0.1.11

This release contains the following changes:

  • The default trace context propagation style is now "datadog" instead of "tracecontext, datadog".
  • Telemetry metrics are now published to the Datadog Agent.
  • The library now builds on ARM64 platforms.
  • The library now builds on Darwin.

v0.1.10

This release contains the following changes:

  • CURL handles can no longer leak on shutdown (#36).
  • A spurious warning produced by GCC 12 no longer halts the build (#39).

v0.1.9

This release contains changes that don't affect the behavior of the library:

  • CMake build changes to easier integrate with nginx-datadog, as well as some code refactoring
  • new microbenchmarks under benchmark/
  • a new usage example under examples/http-server/

v0.1.8

This release fixes the hard-coded release version.