Releases: DataDog/dd-trace-go
v1.74.1: v1 transitional version
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
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
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
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
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)
- appsec/gqlgen: fix recovered from an unexpected panic from an event listener by @RomainMuller in #3252
- tracer: allow disabling APM tracing with DD_APM_TRACING_ENABLED=false by @genesor in #3230
- appsec: better SSRF RASP detector with less false positive by @eliottness in DataDog/go-libddwaf#114
- appsec: unlock go 1.24 by @eliottness in DataDog/go-libddwaf#116
- appsec: update user monitoring SDK by @RomainMuller in #3192
- appsec: add missing addresses in UserSec feature activation by @RomainMuller in #3202
- appsec: populate _dd.appsec.events..sdk=true by @RomainMuller in #3207
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)
- internal/datastreams: Support service name overrides by @piochelepiotr in #3254
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
- ci: pin github actions by hash and update via dependabot by @xopham in #3146
- feat: implement origin detection by @darccio in #3124
- fix: bump version of golangci-lint by @hannahkm in #3161
- ci: fix incorrect filepath to multios test xml by @hannahkm in #3153
- internal/orchestrion/_integration: pull container images before running tests by @RomainMuller in #3189
- internal/orchestrion/_integration: go-redis tests now wait for successful Ping by @RomainMuller in #3193
- maintenance: feature request discussion template by @RomainMuller in #3194
- maintenance: fix feature request category link by @RomainMuller in #3195
- internal/orchestrion/_integration: enable vm.overcommit_memory by @RomainMuller in #3196
- go.mod: temporary workaround for mssql bug by @hannahkm in #3199
- [go1.24 support] bump golangcilint by @hannahkm in #3198
- Adds TELEMETRY_APP_STARTED_PRODUCTS_DISABLED scenario in CI by @cbeauchesne in #3213
- gitlab-ci: fix microbenchmark names by @eliottness in #3204
...
v1.72.2
What's Changed
General
- Add missing headers on Stats payload by @ichinaski in #3337
Full Changelog: v1.72.1...v1.72.2
v1.72.1
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
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)
- appsec: meta_struct Security Events by @eliottness in #3098
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
- @kakkoyun made their first contribution in #3091
- @tonyduburque made their first contribution in #3035
- @tlhunter made their first contribution in #3046
- @rliebz made their first contribution in #2994
- @jordan-wong made their first contribution in #3052
- @keisku made their first contribution in #3081
- @ichinaski made their first contribution in #3132
Full Changelog: v1.71.0...v1.72.0
v1.71.1
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
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
- @mhlidd made their first contribution in #2973
- @quinna-h made their first contribution in #2936
- @sethsamuel made their first contribution in #2984
Full Changelog: v1.70.1...v1.71.0