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
- all: replace internal/telemetry by internal/newtelemetry by @eliottness in #3136
- feat: store tracer configuration in an in-memory file by @dmehala in #3171
- chore: add tracing macrobenchmark with runtime metrics enabled by @zacharycmontoya in #3346
- fix(service-discovery): report
go
instead ofgolang
by @dmehala in #3352 - [v1] internal/telemetry: fix telemetry metric submit datarace double pool insertion by @eliottness in #3433
- internal/telemetry: add telemetry logs in case of overflows and limit the number of distinct logs sent by @eliottness in #3223
New Contributors
- @xopham made their first contribution in #3146
- @Gandem made their first contribution in #3131
- @winebarrel made their first contribution in #3166
- @LamineKouissi made their first contribution in #3175
- @dmehala made their first contribution in #3171
- @TonyCTHsu made their first contribution in #3320
- @rwynn made their first contribution in #3297
Full Changelog: v1.72.0...v1.73.0