Skip to content

Releases: DataDog/dd-trace-go

v1.74.1: v1 transitional version

24 Jun 18:30
2676fb8
Compare
Choose a tag to compare

Warning

This release has been retracted, use the latest v1.74.x available instead.

Note

This is the last minor release for v1. The Go tracer v1 transitional version is a wrapper that preserves the API from v1 but uses v2 under the hood.

This transitional version is the only v1 version that allows both v1 and v2 to be imported in the same service—enabling you to migrate a service gradually. Using this v1 transitional version doesn’t require any code changes, but it also won’t support any new features introduced in the new v2 tracer.

Changes

Updates github.com/DataDog/dd-trace-go/v2 from v2.0.0 to v2.0.1

Full Changelog: v1.74.0...v1.74.1

v2.0.0

05 Jun 17:18
v2.0.0
2ebc394
Compare
Choose a tag to compare

Warning

This release has been retracted, use the latest v2.x.x available instead.

Summary

Datadog has long supported the monitoring of instrumented Go applications through our Go tracer v1. As the Go ecosystem has continued to mature, we’ve been hard at work collecting feedback and improving upon the tracer’s capabilities and usability features.

We are now thrilled to announce the release of dd-trace-go v2.0.0. This major update includes better security and stability, and a new and simplified API. In creating this updated version, we have incorporated valuable feedback both from our customer community and from our own teams at Datadog who use the Go tracer extensively. We have already tested this new version in production and have migrated all our internal services.

A migration guide has been provided to help users running version 1.x with upgrading. It can be found here.

To view the complete set of changes implemented in this release, please refer to the issues and PRs marked with the v2.0 label in our GitHub repository.

Further reading

v1.74.0: v1 transitional version

05 Jun 15:29
a75ad26
Compare
Choose a tag to compare

Warning

This release has been retracted, use the latest v1.74.x available instead.

Note

This is the last minor release for v1. The Go tracer v1 transitional version is a wrapper that preserves the API from v1 but uses v2 under the hood.

This transitional version is the only v1 version that allows both v1 and v2 to be imported in the same service—enabling you to migrate a service gradually. Using this v1 transitional version doesn’t require any code changes, but it also won’t support any new features introduced in the new v2 tracer.

Note that, while we are offering the v1 transitional version for the convenience of our customers, we strongly encourage you to upgrade to the v2 version as soon as possible to benefit from the newest features and improvements. If you have concerns or reasons to not upgrade to the transitional version, contact us and we’ll work together to resolve them.

v1.73.1

12 May 18:09
c523345
Compare
Choose a tag to compare

What's Changed

Note

This is a patch release of the last v1 version before the v1 transitional release v1.74.0 planned for May/June 2025. The Go tracer v1 transitional version is essentially a wrapper that preserves the API from v1 but uses v2 under the hood.

The transitional version can co-exist with v2 in the same service, which enables you to migrate services gradually. Using the v1 transitional version - starting at v1.74.0 - doesn’t require any code changes, but it also won’t support any new features of the new v2 tracer.

The v1 transitional version is planned for release in late May/early June 2025 as v1.74.0.

Application Performance Monitoring (APM)

  • fix(ddtrace/internal): log to debug instead of warning when starting spans without an active tracer by @darccio #3513

Full Changelog: v1.73.0...v1.73.1

v1.73.0

09 May 14:46
790ccef
Compare
Choose a tag to compare

What's Changed

Note

This is the last v1 release before the v1 transitional release v1.74.0 planned for May/June 2025. The Go tracer v1 transitional version is essentially a wrapper that preserves the API from v1 but uses v2 under the hood.

The transitional version can co-exist with v2 in the same service, which enables you to migrate services gradually. Using the v1 transitional version - starting at v1.74.0 - doesn’t require any code changes, but it also won’t support any new features of the new v2 tracer.

The v1 transitional version is planned for release in late May/early June 2025 as v1.74.0.

Application Performance Monitoring (APM)

  • contrib/envoyproxy: fix context propagation from envoy tracing by @e-n-0 in #3144
  • contrib/miekg/dns: use random port for test by @rarguelloF in #3164
  • contrib/internal/httptrace: add inferred span identification tag by @zarirhamza in #3184
  • Opentelemetry Baggage Propagation by @rachelyangdog in #3126
  • contrib: add messaging.destination.name to kafka integrations by @rarguelloF in #3173
  • [serverless] Add S3 span pointers by @nhulston in #3083
  • ddtrace/tracer: add integration tag to spans_started/finished by @hannahkm in #3023
  • Orchestrion supports valkey by @keisku in #3231
  • contrib/database/sql: update documentation on WithCustomTags function by @mtoffl01 in #3246
  • Support rueidis tracing by @keisku in #3262
  • [v1] Span Events native support and graphql error reporting by @rarguelloF in #3176
  • contrib/internal/graphql: rename location -> locations by @rarguelloF in #3361
  • feat: upgrade rueidis and valkey-go to 1.0.56 by @darccio in #3374
  • chore: add test for merging baggage entries by @rachelyangdog in #3256
  • chore: fix rueidis aspect (#3373) by @darccio in #3375
  • tracer: Log a warning on NoopTracer.StartSpan() by @mtoffl01 in #2991
  • ddtrace/tracer/slog: fix slog handler by @Gandem in #3131
  • fix: manual publish of Service Extension image by @e-n-0 in #3151
  • ddtrace/tracer: Span links improvements and bug fix by @nhulston in #3123
  • ddtrace/tracer: fix flake in TestTracerMetrics by @hannahkm in #3172
  • APM: Only do stats obfuscation when we know its safe to do so by @ajgajg1134 in #3155
  • contrib/gorilla/mux: Add WithStatusCheck() by @winebarrel in #3166
  • contrib/99designs/gqlgen: fix introspection query detection by checking Operation.Name by @LamineKouissi in #3175
  • ddtrace/tracer: remove remote config check on env and service name by @genesor in #3261
  • Add missing headers on Stats payload by @ichinaski in #3330
  • v1 baggage otel drop-in support by @rachelyangdog in #3362
  • fix(valkey): Make error checking configurable and fix inconsistency by @rwynn in #3297
  • fix(ddtrace/tracer): postpone span events/links serialization (#3429) by @darccio in #3435
  • fix(valkey): Make error checking configurable and fix inconsistency by @rwynn in #3297
  • contrib/log/slog: make orchestrion config lib-side by @RomainMuller in #3408
  • feat(http): add round tripper option for status check functionality and corresponding tests by @darccio in #3479

Application Security Management (ASM)

Profiling

  • ddtrace/tracer: optimize applyPPROFLabels for go1.24 by @felixge in #3241
  • profiler: clear old completed list before re-using it by @paulcacheux in #3304

Datastreams Monitoring (DSM)

CI Visibility

  • (fix) internal/civisibility/coverage: [APMLP-379] fix TestCollectCoverageAfterTestExecution flaky test by @tonyredondo in #3169
  • (fix) ddtrace/tracer: don't call appsec.Start in CI Visibility agentless mode by @tonyredondo in #3149
  • (fix) internal/civisibility: Fix test visibility on Go 1.24 by @tonyredondo in #3179
  • (feat) internal/civisibility: add flaky test management features by @tonyredondo in #3177
  • (fix) internal/civisibility: add support for detached heads in civisibility backend transactions by @tonyredondo in #3157
  • (feat) internal/civisibility: Parallelize test optimization startup by @tonyredondo in #3187
  • civisibility: add civisibility folder and fix a race condition by @tonyredondo in #3235
  • (fix) internal/civisibility: fix missing failing tests due to the runtime.Goexit() call from the testing framework. by @tonyredondo in #3243
  • (feat) internal/civisibility: adds the orchestrion integration for testify suite.Run function by @tonyredondo in #3247
  • (feat) internal/civisibility: adds the test_session telemetry metric by @tonyredondo in #3268
  • (feat) internal/civisibility: adds the telemetry metrics for the test management feature by @tonyredondo in #3271
  • (feat) internal/civisibility: add support for attempt_to_fix v2 workflow by @tonyredondo in #3288
  • (fix) internal/civisibility: fixes the removeEmptyStrings func and updates the common_metrics.json file by @tonyredondo in #3291
  • (fix) internal/civisibility: Fix git command to extract the source root by @tonyredondo in #3306
  • (feat) internal/civisibility: add support for file environmental data by @tonyredondo in #3319
  • (fix) internal/civisibility: fix data race due the usage of append over a read only tags (v1) by @tonyredondo in #3432
  • fix (internal/civisibility): Fix features load race condition [release v1.73.x] by @tonyredondo in #3503

General

Read more

v1.72.2

24 Mar 15:51
cef5942
Compare
Choose a tag to compare

What's Changed

General

Full Changelog: v1.72.1...v1.72.2

v1.72.1

24 Feb 12:41
94c7f0e
Compare
Choose a tag to compare

What's Changed

This release contains a small fix for the Inferred Proxy Spans feature (implemented in #3052) that adds a new tag to correctly identify these spans.

Application Performance Monitoring (APM)

  • contrib/internal/httptrace: add inferred span identification tag by @zarirhamza in #3184

Full Changelog: v1.72.0...v1.72.1

v1.72.0

21 Feb 15:59
ad11ad7
Compare
Choose a tag to compare

What's Changed

Note

There is a minor behaviour breaking change in tracer.SpanFromContext. Now, it also returns false in the second return value when the span from the context is a no-op span, which only happens when spans are created without a tracer being started (previously it used to return true). This change shouldn't have any effect in applications that correctly start the tracer before creating spans.

Application Performance Monitoring (APM)

  • contrib/envoyproxy: fix resource name by @e-n-0 in #3047
  • appsec: Service Extension callout by @e-n-0 in #2965
  • contrib/IBM/sarama.v1: support for consumer groups by @rarguelloF in #3041
  • contrib/IBM/sarama.v1: remove commented code by @rarguelloF in #3073
  • contrib/IBM/sarama.v1: use an unique topic name for tests by @rarguelloF in #3075
  • contrib/http/net: adding integration-level option to configure error codes by @rachelyangdog in #3012
  • contrib/net/http: support for path params from go 1.22 proposal by @eliottness in #3079
  • contrib/net/http: Obfuscate query strings on http client spans by @mtoffl01 in #3071
  • contrib/envoyproxy: fix empty request by @e-n-0 in #3089
  • fix(staticcheck): Fix trivial go vet issues by @kakkoyun in #3091
  • contrib/IBM/sarama.v1: skip integration test if env variable is not set by @rarguelloF in #3092
  • ddtrace/tracer: Support DD_DOGSTATSD_HOST env var by @mtoffl01 in #3084
  • contrib/IBM/sarama.v1: stop using mockbroker for tests by @rarguelloF in #3104
  • contrib/internal/httptrace: add support for inferred proxy spans by @jordan-wong in #3052
  • ktlo(ddtrace,contrib): don't use hardcoded FS paths on integration/telemetry tests by @darccio in #3122
  • contrib/internal/httptrace: add telemetry for inferred spans by @zarirhamza in #3119
  • Support valkey-go tracing by @keisku in #3081
  • fix(net/http: orchestrion): obfuscate query string parameters when auto-instrumenting by @RomainMuller in #3127
  • contrib/gorm.io/gorm.v1: fix orchestrion aspect by @rarguelloF in #3121
  • contrib/database/sql: Close DB Stats goroutine on db.Close() by @mtoffl01 in #3025
  • feat: implement origin detection by @darccio in #3124

Application Security Management (ASM)

Test Optimization

  • (fix) internal/civisibility/utils: improve environment tags mutability by @tonyredondo in #3076
  • (fix) internal/civisibility: add some checks before performing the http requests. by @tonyredondo in #3087
  • (feat) internal/civisibility: add support for testify Suites by @tonyredondo in #3094
  • (fix) internal/civisibility: change http default values and reduce test time. by @tonyredondo in #3134
  • (feat) internal/civisibility: add Known Tests feature and refactor EFD logic by @tonyredondo in #3139
  • (fix) internal/civisibility: Fix test visibility on Go 1.24 by @tonyredondo in #3179

General

  • fix: workaround for otel agent dependency causes orchestrion failure by @eliottness in #3066
  • internal/remoteconfig: support for DD_REMOTE_CONFIGURATION_ENABLED by @eliottness in #3063
  • internal/appsec: add fingerprint tests by @eliottness in #3068
  • fix(ddtrace/tracer): fix panic in SQLCommentCarrier by @rarguelloF in #3062
  • fix(ddtrace/tracer): avoid tests to fail with error "non-constant format string" from upcoming Go 1.24 release by @darccio in #3048
  • WIP: Datadog Baggage API by @rachelyangdog in #3069
  • chore(lint): Add "go vet" to golangci-lint by @kakkoyun in #3095
  • fix(go.mod): clean up to remove dependency on deleted or unmaintained repositories: mitchellh/osext & chenzhuoyu/iasm by @darccio in #3099
  • appsec: change log WAF 'too many event' from Warn to Error by @e-n-0 in #3100
  • internal/telemetry: revert hostname.Get() -> os.Hostname() by @eliottness in #3101
  • contrib/gofiber/fiber.v2: use UserContext in Middleware for span creation by @tonyduburque in #3035
  • [contrib] add orchestrion integration configuration by @RomainMuller in #3074
  • contrib/log/slog: avoid logging 0 value trace/span IDs by @rliebz in #2994
  • chore: switch orchestrion CI to refer to main branch by @RomainMuller in #3110
  • Add Service Extensions Macro Benchmarks by @e-n-0 in #3106
  • Add Service Extensions system tests to CI by @e-n-0 in #3112
  • github action: change semver detection for Service Extension by @e-n-0 in #3117
  • ci: add codeowners to gotestsum report by @hannahkm in #3118
  • tracer/stats: Only get CI tags when CI Visibility is enabled by @ajgajg1134 in #3129
  • ddtrace/tracer: Fix panic on Extract when DD_TRACE_PROPAGATION_EXTRACT_FIRST=true and no trace headers present by @mtoffl01 in #3128
  • Fix peer tags configuration by @ichinaski in #3132

New Contributors

Full Changelog: v1.71.0...v1.72.0

v1.71.1

04 Feb 16:23
1f6d8cb
Compare
Choose a tag to compare

What's Changed

This release contains a fix for a panic on trace extraction when DD_TRACE_PROPAGATION_EXTRACT_FIRST=true and no trace headers were present. It also updates the tracer to only retrieve CI tags when CI Visibility is enabled, improving efficiency.

General

  • ddtrace/tracer: Fix panic on Extract when DD_TRACE_PROPAGATION_EXTRACT_FIRST=true and no trace headers present [1.71 backport] in #3141
  • tracer/stats: Only get CI tags when CI Visibility is enabled [1.71 backport] in #3142

Full Changelog: v1.71.0...v1.71.1

v1.71.0

23 Jan 08:52
5ed4841
Compare
Choose a tag to compare

What's Changed

Application Performance Monitoring (APM)

  • Adding Span Link support for compound header tag extractions with conflicting trace IDs by @mhlidd in #2948
  • contrib/net/http: Make DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING false by default by @mtoffl01 in #3010
  • ddtrace/tracer: initialize runtimeMetricsV2 with statsd "direct" client by @anatolebeuzon (#3006)
  • ddtrace/tracer: report datadog.tracer.api.errors health metric by @mtoffl01 (#3024)
  • ddtrace/tracer: Report datadog.tracer.queue.enqueued.traces as health metric by @mtoffl01 (#3019)
  • ddtrace/tracer: Report datadog.tracer.abandoned_spans health metric by @mtoffl01 (#3032)

Application Security Management (ASM)

  • appsec: never start a new WAF Context when one is in context by @eliottness in #2989
  • contrib/envoyproxy: envoy external processing support by @e-n-0 (#2895)
  • appsec: stop storing span tags, directly call span.SetTag by @eliottness (#3044)
  • ddtrace/tracer: Tracing as transport-only mode (APPSEC_STANDALONE) by @eliottness (#3033)

CI Visibility

  • internal/civisibility: ensure git permissions before extracting git info by @tonyredondo in #2974
  • internal/civisibility: fix RWMutex usages by @tonyredondo in #2982
  • internal/civisibility: specify if the user is setting the DD_SERVICE by @tonyredondo in #2988
  • ddtrace/tracer: Disable agent features and remote configuration in CI Visibility agentless mode by @tonyredondo (#3026)

General

  • ddtrace/tracer: add support for span links on Span Context by @mhlidd in #2973
  • ddtrace/tracer: Ensure SpanLink access is safe from corruption by @mtoffl01 in #2975
  • fix(ddtrace/tracer): ignore agent-provided TCP port when using a UDS w/ WithDogstatsdAddress by @darccio in #2985
  • Add example listening for sigterm to docs (APMSP-15340) by @ajgajg1134 in #2978
  • fix(ddtrace/tracer): refactor DogStatsD URL resolution using agent-reported StatsD port by @darccio in #2995
  • chore(go.mod): reduce blast radius in go.mod from #2817 (#2979) by @darccio in #2980
  • ddtrace/tracer: remove health_metrics_enabled from startup logs by @hannahkm in #3003
  • internal: add workflow to check for outdated integrations by @quinna-h in #2936
  • go.mod: Use explicit go-runtime-metrics-internal version by @felixge in #3013
  • Propagate statsd client to stats concentrator (APMSP-1631) by @ajgajg1134 in #3007
  • ddtrace/tracer: Add a retryInterval option by @mtoffl01 in #2986
  • Remove deprecated cache option by @sethsamuel in #2984
  • go.mod: module go.opentelemetry.io/collector/pdata@latest found (v1.21.0), but does not contain package go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1experimental (#3042)
  • vuln: upgrade golang.org/x/{crypto,net} to non-vulnerable versions by @darccio (#3050)
  • build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#3001)

New Contributors

Full Changelog: v1.70.1...v1.71.0