Skip to content

Releases: DataDog/dd-trace-cpp

v2.1.1

Choose a tag to compare

@xlamorlette-datadog xlamorlette-datadog released this 19 Jun 08:55
v2.1.1
0a1dc56

This release fixes two shutdown crash issues.

What's Changed

Bug fixes

  • For telemetry, add shutdown() function that cancels scheduled tasks, sends the app-closing payload, and releases the HTTP client. #326
  • Capture proxy related environment variables at curl client construction to avoid crash (notably at shutdown). #328

Full Changelog: v2.1.0...v2.1.1

v2.1.0

Choose a tag to compare

@xlamorlette-datadog xlamorlette-datadog released this 06 May 08:32
v2.1.0
4412e16

This release improves observability with endpoint-level metrics for HTTP services and richer telemetry (per-process tags, full configuration-source reporting, a 24h extended heartbeat, and stable session IDs). Bug fixes include enforcing baggage size/count limits on extraction. Bazel 9 is now supported.

What's Changed

Functional Changes

  • Knuth sampling rates tag. The tracer emits the computed Knuth sampling rate as a propagation tag (_dd.p.ksr). #250, #288 and #314
  • Process discovery v2 schema. Adds process_tags and container_id fields to the process-discovery payload. #251
  • Process tags. The tracer now computes per-process tags and exposes them on TracerConfig. #256
  • Endpoint renaming. Improves visibility by inferring the endpoint for HTTP service entry spans so users can see these metrics per endpoint instead. #260
  • Config visibility: report all configuration sources. Telemetry config payload now lists every configuration source (env, defaults, code, remote-config) with values in precedence order, not only the applied value. #268
  • C language binding. Adds a C API (ddog_trace_*) wrapping the C++ tracer so C-only projects can integrate without a C++ dependency at the call site. Gated behind BUILD_C_BINDING=OFF. #286 and #309
  • Stable session identifier telemetry headers. All telemetry requests now include DD-Session-ID and, in child processes, DD-Root-Session-ID. #295
  • app-extended-heartbeat telemetry event. Every 24h (configurable via DD_TELEMETRY_EXTENDED_HEARTBEAT_INTERVAL), the tracer re-sends the full configuration payload, restoring backend visibility for long-running services that miss the initial app-started event. #301

Technical Change

  • Bazel 9 compatibility. Updates dependencies; enables bzlmod by default and adds explicit rules_cc loads required by Bazel 9. #266

Bug Fixes

  • Static-target dependency regression. Restores the build for consumers that depend on static-derived targets via CMake. #249
  • Skip libcurl's own test targets. Avoids building libcurl's tests when bundling, shortening the build. #254
  • Baggage limits enforced on extraction. Size and count limits previously applied only on injection now also bound incoming baggage, preventing oversized propagation headers. #313

Full Changelog: v2.0.0...v2.1.0

v2.0.0

Choose a tag to compare

@dmehala dmehala released this 14 Oct 15:49
v2.0.0
6e5c32e

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

Choose a tag to compare

@dmehala dmehala released this 17 Sep 16:49
85370e7

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

Choose a tag to compare

@dmehala dmehala released this 21 Jun 10:50
26e666f

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

Choose a tag to compare

@dmehala dmehala released this 28 May 19:15
0d89feb

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

Choose a tag to compare

@dmehala dmehala released this 02 Apr 13:15
b553930

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

Choose a tag to compare

@dgoffredo dgoffredo released this 17 Nov 22:59
5c53143

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

Choose a tag to compare

@dgoffredo dgoffredo released this 26 Oct 20:18
2ee2a7f

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

Choose a tag to compare

@dgoffredo dgoffredo released this 14 Jun 19:52
0536a16

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