Skip to content

Releases: DataDog/dd-trace-go

v2.3.1

30 Oct 19:06
d851f37

Choose a tag to compare

What's Changed

Application Performance Monitoring (APM)

  • fix(sampling): Force manual sampling on locked traces by @genesor in #3976

Application Security Management (ASM)

General

  • fix(llmobs): include missing tags and make SubmitEvaluationFromSpan more flexible by @rarguelloF in #4050
  • fix(llmobs): do not cancel the context before reading response bodies by @rarguelloF in #4075

Full Changelog: v2.3.0...v2.3.1

v2.3.0

20 Oct 14:37
v2.3.0
c95df19

Choose a tag to compare

What's Changed

As per our version release policy, we are dropping support for Go 1.23 after the release of Go 1.25. Our minimum supported Go release is now Go 1.24.

Application Performance Monitoring (APM)

  • fix(ddtrace/tracer): keep correct trace+span sampling with propagated sampling decision by @darccio in #3856
  • ci: deploy released version of envoy contrib to reliability env by @e-n-0 in #3761
  • chore: upgrade golang.org/x/oauth2 to v0.27.0 by @hannahkm in #3811
  • chore: upgrade go-pg/pg to v10.14.0 by @hannahkm in #3806
  • contrib/envoyproxy: refine component detection by @e-n-0 in #3815
  • feat(contrib/jackc/pgx.v5): Add WithErrCheck option by @ryanslade in #3627
  • ci: remove commit sha tag from released images and add it as container label by @e-n-0 in #3832
  • chore(contrib/envoy): tests for config for serviceextensions by @e-n-0 in #3848
  • fix(contrib/net/http): cannot use http.Request.PathValue before http.ServeMux.ServeHTTP is called by @eliottness in #3853
  • chore: upgrade gofiber/fiber to v2.52.9 to avoid crashes by @hannahkm in #3854
  • chore: upgrade github.com/DataDog/go-libddwaf/v4 to v4.3.2 by @RomainMuller in #3858
  • fix(contrib/net/http): workaround to fix symbol collision in Orchestrion by @rarguelloF in #3865
  • chore: update the remoteconfig dependency by @andreimatei in #3883
  • chore(contrib/olivere/elastic.v5): http.RoundTripper for transport by @isaacdd in #3693
  • fix: security issue in go-pg by @hannahkm in #3885
  • feat: bump minimum Go version to 1.24 by @darccio in #3875
  • feat(contrib/net/http): new orchestrion http ResourceNamer with quantization by @genesor in #3545
  • chore(internal/stacktrace): remove usage to eapache/queue/v2 by @eliottness in #3906
  • docs: update supported integrations documentation by @dd-octo-sts[bot] in #3864
  • feat(appsec): blocking on path params for net/http serve mux tracing by @eliottness in #3914
  • docs: update supported integrations documentation by @dd-octo-sts[bot] in #3916
  • feat(contrib/labstack/echo): analyze parsed request body by @eliottness in #3923
  • build(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 in /contrib/confluentinc/confluent-kafka-go/kafka by @dependabot[bot] in #3908
  • feat(contrib/aws/sqs): add cloud.resource_id as resource tag by @seungleelee in #3894
  • fix(log/slog): deadlock when calling SetDefault with the original default handle by @eliottness in #3931
  • fix(contrib/aws/aws-sdk-go-v2): set messaging.system tag in SQS tracing by @therve in #3928
  • docs: update supported integrations documentation by @dd-octo-sts[bot] in #3922
  • feat: ensure new contrib integrations are properly documented by @hannahkm in #3939
  • refactor(envoyproxy): prepare to move envoyproxy common code in instrumentation for the future HAProxy contrib by @eliottness in #3945
  • chore(ddtrace/tracer): check for goroutine leaks by @felixge in #3788
  • contrib/hashicorp/vault: add godoc links by @dolmen in #3609
  • contrib/julienschmidt/httprouter: add godoc links by @dolmen in #3610
  • fix(ddtrace/tracer): fix seelog goroutine leak by @felixge in #3818
  • chore(ddtrace/tracer): fix typo by @felixge in #3823
  • fix(contrib/99designs/gqlgen): fix panic on empty response from response handler by @asger-noer in #3728
  • refactor(ddtrace/tracer): prepare payload.push for supporting v1 trace protocol by @darccio in #3826
  • feat(ddtrace/tracer): add DD_TRACE_AGENT_PROTOCOL_VERSION support by @darccio in #3850
  • feat(contrib/cloud.google.com/go/pubsub.v2): support cloud.google.com/go/pubsub/v2 by @shota3506 in #3841
  • feat(contrib/gomodule/redigo): adds the DialURLContext method by @Succo in #3016
  • fix(ddtrace/tracer): move startup log after appsec has started by @eliottness in #3942
  • feat(contrib/net/http): add WithClientTimings option by @korECM in #3839
  • fix(ddtrace/tracer): assert context update without hacking the internal implementation by @darccio in #3892
  • feat(ddtrace/tracer): Add 'endpoint' tag to API error metric by @ichinaski in #3925
  • fix(ddtrace/tracer): resolve race conditions in write pipeline by @kakkoyun in #3821
  • fix(contrib/net/http): WithStatusCheck option by @genesor in #4018

Application Security Management (ASM)

  • refactor(internal/appsec): move appsec-internal-go/limiter by @eliottness in #3896
  • refactor(internal/appsec): move apisec sampler out of appsec-internal-go by @eliottness in #3897
  • refactor(internal/appsec): move appsec-internal-go config by @eliottness in #3898
  • feat(gin/appsec): support for request body analysis and blocking by @eliottness in #3930
  • refactor(internal/appsec): remove appsec-internal-go dependency by @eliottness in #3899
  • feat(appsec): add Forwarded as a source for client IP by @RomainMuller in #3911
  • chore(appsec): add tests for Forwarded header by @RomainMuller in #3915

CI Visibility

  • feat(internal/civisibility): add the pr.number tag for github provider by @tonyredondo in #3803
  • feat(internal/civisibility): add source file and codeowners tags to the suite span by @tonyredondo in #3812
  • fix(internal/civisibility): fix buildkite ci.job.id tag by @tonyredondo in #3813
  • fix(internal/civisibility): fix base branch SHA usage. by @tonyredondo in #3816
  • fix(internal/civisibility): fix impacted tests implementation by @tonyredondo in #3817
  • chore(internal/civisibility): handle flakiness on the unshallow test by @tonyredondo in #3820
  • chore(internal/civisibility): reduce civisibility gotesting tests verbosity by @tonyredondo in #3862

Profiling

  • feat(profiler): implement ProfileType.UnmarshalText method by @crdueck in #3881

General

  • revert #3727 by @eliottness in #3807
  • feat(Dockerfiles): label dockerfiles using opencontainers format for Github Packages UI by @eliottness in #3785
  • feat(internal/env): add env var config validation by @genesor in #3746
  • ci: enable new macrobenchmark envoy scenarios with bodies by @e-n-0 in #3805
  • chore(tools/v2fix): upgrade dd-trace-go.v1 to avoid v2 non-compatible warning by @darccio in #3814
  • build(deps): bump github.com/go-chi/chi/v5 from 5.0.10 to 5.2.2 in /orchestrion/all by @dependabot[bot] in #3810
  • ci: add new sts policies for ecosystems-label checks by @genesor in #3825
  • ci: add STS token retrieval step for label check by @genesor in #3824
  • chore(tools): Improve develoment tool management by @kakkoyun in #3819
  • Avoid using GITHUB_TOKEN for PR creation by @xopham in #3828
  • fix(internal/setup-smoke-test): use JSON arguments for CMD/ENTRYPOINT and change alias in FROM scratch by @darccio in #3830
  • chore(ci): Improve CI by @kakkoyun in #3833
  • feat(.github/chainguard): add outdated integrations policy for STS migration by @darccio in #3842...
Read more

v1.74.7

20 Oct 14:57
v1.74.7
8a21725

Choose a tag to compare

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.

Warning

This release has been retracted due to problematic upgrades to the minimum Go version. Please use the latest v1.74.x version instead.

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.2.3 to v2.3.0

Full Changelog: v1.74.6...v1.74.7

v2.2.3

02 Sep 16:20
v2.2.3
4d4a462

Choose a tag to compare

What's Changed

This patch release fixes a significant bug that caused dropped spans due to local sampling rules overriding the sampling decision already present in inbound distributed trace context.

Important

Depending on your sampling rules, and especially if you have trace sampling rules,, you may notice an increase in ingested spans. This increase is expected and the consequence of not applying trace sampling rules when there is a head sampling decision. If the ingested volume is problematic, reduce it using APM Ingestion Controls. For any questions or issues, please contact Datadog Support.

Application Performance Monitoring (APM)

  • fix(ddtrace/tracer): keep correct trace+span sampling with propagated sampling decision by @darccio in #3856
  • chore: update the remoteconfig dependency by @andreimatei in #3883

Full Changelog: v2.2.2...v2.2.3

v1.74.6

02 Sep 16:38
93c69f9

Choose a tag to compare

What's Changed

This patch release fixes a significant bug that caused dropped spans due to local sampling rules overriding the sampling decision already present in inbound distributed trace context.

Important

Depending on your sampling rules, and especially if you have trace sampling rules,, you may notice an increase in ingested spans. This increase is expected and the consequence of not applying trace sampling rules when there is a head sampling decision. If the ingested volume is problematic, reduce it using APM Ingestion Controls. For any questions or issues, please contact Datadog Support.

Application Performance Monitoring (APM)

  • fix(ddtrace/tracer): keep correct trace+span sampling with propagated sampling decision by @darccio in #3856
  • chore: update the remoteconfig dependency by @andreimatei in #3883

Full Changelog: v1.74.5...v1.74.6

v2.2.2

11 Aug 14:13
68104c3

Choose a tag to compare

Note

v2.2.0 and v2.2.1 are retracted versions. If you are running one these two versions, please upgrade to v2.2.2 as soon as possible.

Warning

If you are experiencing sporadic spotaneous reboots by running dd-trace-go on Mac M4 15.5 or 15.6. Please upgrade to v2.2.2 as soon as possible. More information in #3827

What's Changed

Application Performance Monitoring (APM)

  • fix: bump aws-sdk-go-v2 dependencies to support opensearch by @darccio in #3645
  • contrib/go.mongodb.org/mongo-driver.v2: add orchestrion support by @rarguelloF in #3651
  • contrib/database/sql: sanitize sensitive data in error messages by @kakkoyun in #3686
  • valkey-go: fix orchestrion schema by @eliottness in #3732
  • go.mod: upgrade datadog-agent packages to v.0.67.0 by @KevinFairise2 in #3726
  • feat: add ruleguard rules to prevent uncontrolled data leakage in logging by @kakkoyun in #3706
  • fix: service name configurations by @rarguelloF in #3736
  • feat: enable runtime metrics v2 by default by @felixge in #3745
  • refactor: replace atomic operations with atomic.Int32 for error tracking in SpanContext by @darccio in #3655
  • fix(tracer): Baggage extraction by @mtoffl01 in #3597
  • fix(ddtrace/tracer): add test and fix for deadlock issue #3541 in remote configuration by @darccio in #3667
  • instrumentation: stop sending telemetry logs for each log a contrib would send to stdout by @eliottness in #3684
  • ddtrace/tracer: cap execution tracer task name length by @nsrip-dd in #3658
  • contrib/aws: finish span in middleware func where it was created by @chadawagner in #3697
  • ddtrace/tracer: sanitize URLs in CI Visibility transport logs by @kakkoyun in #3704
  • fix(internal/baggage): fix data race on baggage map read/write by @mtoffl01 in #3700
  • ddtrace/tracer: fix remote config memory leak by @ajwerner in #3797

App & API Protection

Profiling

  • profiler: fix race in refreshing execution trace config by @nsrip-dd in #3659
  • profiler: re-introduce enabled field to startup log by @mtoffl01 in #3712

Ci Visibility

  • fix (internal/civisibility): fix code coverage stdout data race by @tonyredondo in #3674
  • fix (internal/civisibility): fix code coverage data race by @tonyredondo in #3662
  • fix (internal/civisibility): logs test fix by @tonyredondo in #3653
  • fix (internal/civisibility): fix p.serializationTime data race by @tonyredondo in #3668
  • fix: data race in civisibility/integrations/logs/logs_payload.go by @darccio in #3666
  • fix (internal/civisibility): fix parallel testing when ancilliary features are enabled. by @tonyredondo in #3720
  • fix(internal/civisibility): fix the attempt-to-fix-passed tag by @tonyredondo in #3743
  • internal/civisibility: add debug logs to the git command execution by @tonyredondo in #3770
  • feat(baggage): auto-adding baggage to span tags by @rachelyangdog in #3440
  • feat(internal/civisibility): improve telemetry for git commands. by @tonyredondo in #3773
  • feat(internal/civisibility): start reporting ci.job.id tag on supported providers. by @tonyredondo in #3776
  • feat(internal/civisibility): attempt to fix v5 by @tonyredondo in #3784
  • feat(internal/civisibility): update ci provider spec and add DroneCI support by @tonyredondo in #3800

General

  • fix: add @latest to v2fix install command by @mkusaka in #3654
  • Adds a nil check on tracer.AddEvent by @heitoriha in #3657
  • internal/telemetry: fix deadlock when recorder queue is full by @eliottness in #3683
  • profiler: skip flaky TestDebugCompressionEnv test by @nsrip-dd in #3691
  • add recipe for handling flaky tests [LANGPLAT-352] by @emmettbutler in #3682
  • internal/stableconfig: Report configuration telemetry by @mtoffl01 in #3570
  • fix: sanitize span context debug logging to prevent sensitive data exposure by @kakkoyun in #3703
  • fix: orchestrion metadata not propagated into the config object by @RomainMuller in #3734
  • internal/remoteconfig: Propagate git metadata tags by @piob-io in #3735
  • internal/stableconfig: Report config ID to telemetry by @mtoffl01 in #3617
  • Suppress spammy retry attempt logs by @yuandesu in #3747
  • instrumentation/errortrace: Improve error stack traces by @hannahkm in #3709
  • internal/remoteconfig: Propagate container ids headers by @piob-io in #3794
  • tracer: subscribe to and report symbol db RC status by @ajwerner in #3799
  • fix: errorstack duration checks failing on Windows by @hannahkm in #3798

New Contributors

Full Changelog: v2.1.0...v2.2.0

v1.74.5

11 Aug 18:47
766d5cd

Choose a tag to compare

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.1.0 to v2.2.2

Full Changelog: v1.74.3...v1.74.5

v1.74.4

11 Aug 14:25
6b3665a

Choose a tag to compare

Warning

This release has been retracted due to incorrect dd-trace-go/v2 version, 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.1.0 to v2.2.2

Full Changelog: v1.74.3...v1.74.4

v2.1.0

11 Jul 14:25
ed8bf9b

Choose a tag to compare

Summary

Application Performance Monitoring (APM)

Client-Side Stats Computation

Client-Side Stats computation is now enabled by default. This feature allows the Go tracer to compute aggregated span statistics locally before sending them to the Datadog Agent, resulting in reduced network traffic and improved performance.

What this means: Instead of sending all raw span data to the Agent, the tracer now sends pre-computed statistics, reducing bandwidth usage while maintaining full observability.

To disable, if needed: Set the environment variable DD_TRACE_STATS_COMPUTATION_ENABLED=false or use tracer.WithStatsComputation(false) when starting the tracer programmatically.

File-based Configurations

Introduced support for configuring SDK products via a file on the underlying Linux system. #3438 Documentation

Baggage improvements

Fixed a distributed tracing bug in the baggage propagator. Also refactored baggage injection and extraction logic for improved performance and readability. #3439 #3597

Application Security Management (ASM)

contrib envoyproxy/go-control-plane:

  • API Security
    • Proxy sampler has been implemented for schema generation
    • Support of Json body analysis of requests and responses (using simdjson-go or fallbacking on json-iterator/go if not available)
  • Appsec
    • Support of Envoy observability_mode for async and non-blocking requests analysis

What's Changed

Application Performance Monitoring (APM)

  • feat(http): add round tripper option for status check functionality and corresponding tests by @darccio in #3480
  • fix: graphql default service name by @rarguelloF in #3547
  • fix: revert unexpected changes from v1->v2 by @rarguelloF in #3549
  • fix: Add public Version for dd-trace-go for contrib by @e-n-0 in #3599
  • fix(ddtrace/tracer): postpone span events/links serialization by @darccio in #3429
  • fix(ddtrace/tracer): add finished check on NoDebugStack and WithError code branches by @darccio in #3441
  • fix(ddtrace/tracer): replace RLock with Lock for NoDebugStack check to prevent race condition by @darccio in #3446
  • fix(ddtrace/tracer): prevent applying rate to finished spans and add test coverage for this finishing code path by @darccio in #3474
  • fix(baggage): drop entire baggage header when malformed by @rachelyangdog in #3498
  • fix(ddtrace/tracer): fix UDS handling in WithAgentURL (#3553) by @darccio in #3554
  • fix(ddtrace/tracer): handle nil options in span configuration functions by @darccio in #3592
  • contrib/gorilla/mux: fix orchestrion aspect by @rarguelloF in #3630
  • contrib/go.mongodb.org/mongo-driver.v2: add support by @rarguelloF in #3604
  • contrib/envoyproxy: add JSON Encoder by @e-n-0 in #3550
  • contrib/database/sql: fix race condition by @rarguelloF in #3649
  • contrib/aws/aws-sdk-go-v2/aws: Fix dynamodb service inference by @LamineKouissi in #3528
  • tracer: fix potential concurrency bug for trace source tag by @genesor in #3442
  • tracer: Log a warning on NoopTracer.StartSpan() (#2991) (#3378) by @mtoffl01 in #3449
  • sampling: update formula by @genesor in #3423
  • ddtrace/tracer: add process tags to client stats payload by @rarguelloF in #3580
  • ddtrace/tracer: more accurate retry logging by @jstern in #3327
  • refactor(ddtrace/tracer): internalize {Get,Set}GlobalTracer API by @darccio in #3482
  • refactor Optimize baggage implementation by @mtoffl01 in #3439
  • refactor(ddtrace/tracer): remove Submit method from Tracer interface by @darccio in #3561
  • refactor(ddtrace/{tracer,mocktracer}): remove SubmitChunk method fromTracer interface by @darccio in #3562
  • refactor(ddtrace/tracer): remove unused Submit and SubmitChunk methods, unexpose Chunk type by @kakkoyun in #3641
  • feat: add process tags to tracing payloads by @rarguelloF in #3566
  • feat: stats - compute stats after span is fully finished by @ichinaski in #3443
  • feat: stats - enable stats computation by default by @ichinaski in #3548
  • orchestrion: don't trace the tracer even if tracer.Start(tracer.WithHTTPClient(...)) is called by @eliottness in #3559
  • Support file-based configurations (Phase 1) by @mtoffl01 in #3438
  • instrumentation: stop sending telemetry logs for each log a contrib would send to stdout by @eliottness #3684
  • contrib/database/sql: sanitize sensitive data in error messages by @kakkoyun #3686
  • fix(ddtrace/tracer): add test and fix for deadlock issue #3541 in remote configuration by @darccio #3667
  • fix(tracer): Baggage extraction by @mtoffl01 #3597
  • ddtrace/tracer: cap execution tracer task name length by @nsrip-dd #3658

Application Security Management (ASM)

Profiling

  • refactor(profiler): centralize compression logic by @felixge in #3529
  • feat(profiler): show config in profile "Runtime Info" tab by @felixge in #3588
  • profiler: add process tags to profiling payloads by @rarguelloF in #3583

CI Visibility

Read more

v1.74.3

11 Jul 14:36
97b9657

Choose a tag to compare

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.1 to v2.1.0

Full Changelog: v1.74.2...v1.74.3