| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-28 | 19.6 kB | |
| v2.10.0 source code.tar.gz | 2026-08-28 | 5.0 MB | |
| v2.10.0 source code.zip | 2026-08-28 | 6.4 MB | |
| Totals: 3 Items | 11.4 MB | 0 | |
Summary
This release introduces the new Efficient Trace Protocol (ETP; v1.0) by default. If you want to opt-out and continue using the previous trace protocol, you can set DD_TRACE_AGENT_PROTOCOL_VERSION=0.4. ETP introduces significant improvements on performance and payload size in the wire.
There are other improvements regarding allocations and CPU usage in our tracer's hot paths, including an experimental span pool (available as tracer option and environment variable DD_TRACER_EXPERIMENTAL_SPAN_POOL_ENABLED).
New contribs:
labstack/echov5aerospike/aerospike-client-gov7
What's Changed
Application Performance Monitoring (APM)
- chore: code improvements to support testing for ETP by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4719
- test(instrumentation/httptrace): cover query-string obfuscator in tracked benches by @darccio in https://github.com/DataDog/dd-trace-go/pull/4806
- feat: trace context propagation behavior by @igoragoli in https://github.com/DataDog/dd-trace-go/pull/4635
- fix(contrib/aws/aws-sdk-go-v2): fix EventBridge DSM tag structure by @robcarlan-datadog in https://github.com/DataDog/dd-trace-go/pull/4832
- feat(ddtrace/tracer): add span pool by @darccio in https://github.com/DataDog/dd-trace-go/pull/4440
- feat(tracer/meter): emit otel Go runtime metrics by @anna-git in https://github.com/DataDog/dd-trace-go/pull/4803
- feat(contrib): add labstack/echo v5 integration by @genesor in https://github.com/DataDog/dd-trace-go/pull/4648
- feat(contrib): add integration for aerospike/aerospike-client-go.v7 by @darccio in https://github.com/DataDog/dd-trace-go/pull/4830
- perf: multiple improvements backport [v2.10.0] by @darccio in https://github.com/DataDog/dd-trace-go/pull/5019
- fix(internal/orchestrion): backport GLS pool/parent fixes to v2.10.x by @darccio in https://github.com/DataDog/dd-trace-go/pull/5097
- chore: backport multiple PRs to
release-v2.10.xby @darccio in https://github.com/DataDog/dd-trace-go/pull/5174 - feat(tracer): remove DD_TRACE_CLIENT_HOSTNAME_COMPAT by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4758
- refactor(config): migrate dynamicInstrumentationEnabled by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4760
- refactor(config): migrate traceAnalyticsEnabled by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4795
- refactor(config): migrate OTEL_LOGS_EXPORTER logic into loadConfig by @MilanGarnier in https://github.com/DataDog/dd-trace-go/pull/4790
- refactor(config): migrate ciVisibilityAgentless by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4793
- fix(tracing): do not keep credential metadata in gRPC spans by @KowalskiThomas in https://github.com/DataDog/dd-trace-go/pull/4767
- test(ddtrace/tracer): add harness tests for removing SpanContext's span back-reference by @darccio in https://github.com/DataDog/dd-trace-go/pull/4815
- refactor(config): migrate ciVisibilityNoopTracer by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4819
- refactor(ddtrace/tracer): remove SpanContext.span back-reference by @darccio in https://github.com/DataDog/dd-trace-go/pull/4816
- feat(instrumentation/httptrace): optimize default behaviour for URL query args' obfuscation by @darccio in https://github.com/DataDog/dd-trace-go/pull/4805
- feat(contrib/jackc/pgx.v5): add WithPoolName option for pool name tagging by @marstid in https://github.com/DataDog/dd-trace-go/pull/4748
- test(ddtrace/tracer): stabilize span pool agent POV's flaky tests by @darccio in https://github.com/DataDog/dd-trace-go/pull/4850
- feat(config): Add DD_TRACE_AGENT_TIMEOUT config option by @Seanbon0611 in https://github.com/DataDog/dd-trace-go/pull/4827
- refactor(config): migrate sendRetries to internal config by @eunskin in https://github.com/DataDog/dd-trace-go/pull/4743
- feat(config): migrate universalVersion, add DD_TRACE_UNIVERSAL_VERSION_ENABLED by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4820
- feat(config): migrate dogstatsdAddr, add DD_DOGSTATSD_URL by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4796
- fix(css): Populate RuntimeID and Service on CSS (APMSP-3042) by @ichinaski in https://github.com/DataDog/dd-trace-go/pull/4875
- feat(config): migrate headerAsTags, add apply-callback to DynamicConfig by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4821
- docs(contrib/labstack/echo.v4): fix inverted WithErrorCheck doc comment by @korECM in https://github.com/DataDog/dd-trace-go/pull/4858
- fix(ddtrace/tracer): recover from stale-idle UDS conn races by @kakkoyun in https://github.com/DataDog/dd-trace-go/pull/4809
- chore(telemetry): exclude OTLP headers from configuration telemetry by @bm1549 in https://github.com/DataDog/dd-trace-go/pull/4859
- feat(ddtrace/tracer): add span lifecycle benchmarks by @darccio in https://github.com/DataDog/dd-trace-go/pull/4682
- fix(instrumentation/httptrace): fix O(N²) CPU exhaustion in query-string obfuscator by @darccio in https://github.com/DataDog/dd-trace-go/pull/4896
- fix(telemetry): derive agentless telemetry URL from DD_SITE by @Nitjsefni7 in https://github.com/DataDog/dd-trace-go/pull/4883
- fix(ddtrace/tracer): classify ENOTCONN as transient and raise stale-conn retry budget by @darccio in https://github.com/DataDog/dd-trace-go/pull/4908
- perf(ddtrace/tracer): remove redundant per-trace process-tags write in
setTraceTagsLockedby @darccio in https://github.com/DataDog/dd-trace-go/pull/4773 - refactor(config): migrate globalTags by @funyjane in https://github.com/DataDog/dd-trace-go/pull/4865
- test(ddtrace/tracer): fix flaky TestHighPrecisionTimerIsMoreAccurate on Windows by @darccio in https://github.com/DataDog/dd-trace-go/pull/4910
- feat(orchestrion): weave the full GLS lifecycle (tracer & dyngo stay GLS-free) (alt to [#4808]) by @kakkoyun in https://github.com/DataDog/dd-trace-go/pull/4891
- fix(ddtrace/tracer): avoid nested same-class span locks in partial flush by @darccio in https://github.com/DataDog/dd-trace-go/pull/4909
- fix(ddtrace/tracer): skip TestPartialFlushSpanLockOrderingCycle by @darccio in https://github.com/DataDog/dd-trace-go/pull/4922
- test(ddtrace/tracer): de-flake and re-enable TestPartialFlushSpanLockOrderingCycle by @darccio in https://github.com/DataDog/dd-trace-go/pull/4924
- fix(opentelemetry/metric): honor configured temporality selector by @kakkoyun in https://github.com/DataDog/dd-trace-go/pull/4847
- fix(ddtrace/tracer): make traceID hex cache safe for concurrent reads by @darccio in https://github.com/DataDog/dd-trace-go/pull/4726
- fix(tracer): export OTel semconv integer attributes as int in OTLP by @link04 in https://github.com/DataDog/dd-trace-go/pull/4888
- chore: enable ETP by default by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4849
- fix(internal/remoteconfig): poll immediately on Subscribe by @aarsilv in https://github.com/DataDog/dd-trace-go/pull/4958
- fix(appsec): use bit shift instead of XOR for map presize hints by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4709
- fix(tracer): don't activate runtime metrics v1 if otel runtime metrics are enabled by @anna-git in https://github.com/DataDog/dd-trace-go/pull/4962
- feat(tracer): add WithStatsdClient option for sharing statsd clients (#4935) [backport] by @darccio in https://github.com/DataDog/dd-trace-go/pull/4992
- feat(ddtrace/tracer): adaptive pre-grow for
payloadV04andpayloadV1buffers (#4981) [backport] by @darccio in https://github.com/DataDog/dd-trace-go/pull/4996 - perf: backport [#5039] and [#5040] to v2.10.x by @kakkoyun in https://github.com/DataDog/dd-trace-go/pull/5044
Application and API Protection (AAP)
- perf(appsec): make rate limiter synchronous to remove idle goroutine cost by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4956
- feat(aap): collect security testing headers by @e-n-0 in https://github.com/DataDog/dd-trace-go/pull/4774
- fix(contrib/azure/apim-callout): bound inline body decoding to prevent OOM by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4797
- feat(appsec): upgrade to go-libddwaf v5 with subcontext-based ephemeral runs by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4938
- fix(contrib/azure/apim-callout): restore AppSec body inspection on oversized inline bodies and Boomi block enforcement by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4966
- chore(appsec): backport go-libddwaf v5.0.0 (#4985) + CMDi RASP (#4978) to release-v2.10.x by @eliottness in https://github.com/DataDog/dd-trace-go/pull/4986
- fix(appsec): plug GLS + dataBroadcaster listener leak in ServiceEntrySpanOperation by @aqaurius6666 in https://github.com/DataDog/dd-trace-go/pull/4766
- test(internal/appsec/apisec): reduce sampler workload to prevent CI timeout by @darccio in https://github.com/DataDog/dd-trace-go/pull/4912
CI Visibility
- fix(civisibility): propagate Jenkins custom parent ID by @juan-fernandez in https://github.com/DataDog/dd-trace-go/pull/4750
- fix(internal/civisibility): fix known-tests API pagination by @anmarchenko in https://github.com/DataDog/dd-trace-go/pull/4824
- fix(internal/civisibility): fix agent UDS requests by @tonyredondo in https://github.com/DataDog/dd-trace-go/pull/4852
- fix(civisibility): truncate CI Visibility meta values by @tonyredondo in https://github.com/DataDog/dd-trace-go/pull/4853
- feat(ci-visibility): cache Go read requests and add git upload kill switch by @tonyredondo in https://github.com/DataDog/dd-trace-go/pull/4786
- feat(civisibility): backfill coverage for ITR skips by @tonyredondo in https://github.com/DataDog/dd-trace-go/pull/4862
- fix(civisibility): prevent test process crash on transient settings fetch failure by @darccio in https://github.com/DataDog/dd-trace-go/pull/4905
- fix(civisibility): retry JSON-expected 2xx responses with unrecognised Content-Type; harden subtest matrix harness by @darccio in https://github.com/DataDog/dd-trace-go/pull/4917
- fix(civisibility): prevent syncFeatureMetadataFromExecution from corrupting management directives across ATF retries by @darccio in https://github.com/DataDog/dd-trace-go/pull/4914
- feat(civisibility): upload code coverage reports by @tonyredondo in https://github.com/DataDog/dd-trace-go/pull/4918
Database Monitoring (DBM)
- feat(contrib/database/sql): Propagate base hash on DBM comment and introduce dynamic_service mode by @amarziali in https://github.com/DataDog/dd-trace-go/pull/4907
Data Stream Monitoring (DSM)
- perf(datastreams): reduce per-message allocations and lock contention in DSM hot path by @robcarlan-datadog in https://github.com/DataDog/dd-trace-go/pull/4920
- feat(contrib/aws/aws-sdk-go-v2): add DSM propagation for EventBridge, SQS, SNS, and Kinesis by @jeastham1993 in https://github.com/DataDog/dd-trace-go/pull/4772
- fix(contrib/aws/aws-sdk-go-v2): update eventbridge dsm checkpoint tags by @jeastham1993 in https://github.com/DataDog/dd-trace-go/pull/4867
Feature Flagging & Experimentation (FFE)
- perf(openfeature): add evaluation benchmarks to CI by @leoromanovsky in https://github.com/DataDog/dd-trace-go/pull/4902
- feat(openfeature): server-side EVP flagevaluation emission by @leoromanovsky in https://github.com/DataDog/dd-trace-go/pull/4886
- refactor(openfeature): disambiguate eval metrics and logging hooks by @dd-oleksii in https://github.com/DataDog/dd-trace-go/pull/4937
- fix(openfeature): isolate invalid flags [backport v2.10] by @leoromanovsky in https://github.com/DataDog/dd-trace-go/pull/5104
LLMObs
- feat(llmobs): propagate experiment project_id via baggage by @rarguelloF in https://github.com/DataDog/dd-trace-go/pull/4801
- feat(llmobs): add WithAnnotatedCostTagKeys by @XG-xin in https://github.com/DataDog/dd-trace-go/pull/4728
- feat(llmobs): add MetricKey constants for cache breakdown and other token metrics by @rarguelloF in https://github.com/DataDog/dd-trace-go/pull/4784
- feat(llmobs): add tool_version to ToolDefinition and thread it to child tool spans by @imran-at-datadog in https://github.com/DataDog/dd-trace-go/pull/4818
- feat(llmobs/experiment): add EvaluatorResult for reasoning, assessment, metadata, and tags by @hemeryar in https://github.com/DataDog/dd-trace-go/pull/4825
- feat(llmobs/dataset): add WithPullVersion option for historical dataset snapshots by @DD-youssef-ahmed in https://github.com/DataDog/dd-trace-go/pull/4814
Profiling
- chore(profiler): Set EVP origin headers on profile uploads by @felixge in https://github.com/DataDog/dd-trace-go/pull/4898
Serverless
- feat(contrib/aws/datadog-lambda-go): disable internal statsd metrics in Lambda by @purple4reina in https://github.com/DataDog/dd-trace-go/pull/4841
General
- ci: backport Go 1.27/1.26.5 CI stability fixes from main by @darccio in https://github.com/DataDog/dd-trace-go/pull/5264
- fix(deps): bump go.opentelemetry.io/otel/* to non-vulnerable versions by @darccio in https://github.com/DataDog/dd-trace-go/pull/4810
- chore: update vulnerabilities by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4831
- fix: bump dependencies to cover multiple third-parties' CVEs by @darccio in https://github.com/DataDog/dd-trace-go/pull/4906
- chore: bump go-libddwaf/v4 from v4.9.0 to v4.10.0 across all modules by @darccio in https://github.com/DataDog/dd-trace-go/pull/4913
- fix: clean up
github.com/armon/go-metricswarnings and bumpgithub.com/99designs/gqlgento v0.17.92 by @darccio in https://github.com/DataDog/dd-trace-go/pull/4916 - chore(deps): bump the docker group across 6 directories with 3 updates by @dependabot[bot] in https://github.com/DataDog/dd-trace-go/pull/4837
- fix(deps): bump klauspost/compress to v1.18.6 by @darccio in https://github.com/DataDog/dd-trace-go/pull/4751
- chore: upgrade golang.org/x/net to v0.53.0 and google.golang.org/grpc to v1.79.3 by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4755
- feat: add AGENTS files by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4674
- chore: bump github.com/DataDog/datadog-agent/pkg/* to v0.79.0 by @darccio in https://github.com/DataDog/dd-trace-go/pull/4787
- ci: sandbox govulncheck and latest-dependency smoke tests by @kakkoyun in https://github.com/DataDog/dd-trace-go/pull/4598
- chore(ci): replace secrets.GITHUB_TOKEN with dd-octo-sts by @lloeki in https://github.com/DataDog/dd-trace-go/pull/4749
- chore: improve payload benchmarking by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4688
- feat(autoreleasetagger): single-commit multi-tag model with safety guards and CI integration tests by @darccio in https://github.com/DataDog/dd-trace-go/pull/4764
- fix(ci): use GITHUB_TOKEN for GHCR image publishing by @e-n-0 in https://github.com/DataDog/dd-trace-go/pull/4777
- feat: reenable Dependabot for GHA and Dockerfiles with cooldown by @darccio in https://github.com/DataDog/dd-trace-go/pull/4705
- fix(autoreleasetagger): honor excluded modules in tag guard by @darccio in https://github.com/DataDog/dd-trace-go/pull/4778
- fix(.github/chainguard): add workflows permission to sync-cue-actions by @darccio in https://github.com/DataDog/dd-trace-go/pull/4780
- feat: support container tags hash in DSM by @raphaelgavache in https://github.com/DataDog/dd-trace-go/pull/4759
- ci(gitlab): reorder config-validation stage in CI pipeline by @genesor in https://github.com/DataDog/dd-trace-go/pull/4804
- fix(ci): ignore devflow/mergegate in all-jobs-are-green by @rarguelloF in https://github.com/DataDog/dd-trace-go/pull/4807
- fix(testutils): acquire trace mutex in SetPropagatingTag to prevent concurrent map writes by @darccio in https://github.com/DataDog/dd-trace-go/pull/4833
- feat: improve performance and docs on existing state machines by @darccio in https://github.com/DataDog/dd-trace-go/pull/4811
- chore(chainguard): add dd-octo-sts policy for FPD config-inversion by @genesor in https://github.com/DataDog/dd-trace-go/pull/4856
- chore: update push to test optim version by @hannahkm in https://github.com/DataDog/dd-trace-go/pull/4861
- refactor(config): migrate orchestrionCfg by @funyjane in https://github.com/DataDog/dd-trace-go/pull/4826
- chore(ci): fix codeowner resolution by @cbeauchesne in https://github.com/DataDog/dd-trace-go/pull/4863
- feat(ci): add build metrics tracking for standard vs Orchestrion builds by @darccio in https://github.com/DataDog/dd-trace-go/pull/4877
- feat(ci): expand build-metrics workflow with all integrations and fix triggers by @darccio in https://github.com/DataDog/dd-trace-go/pull/4878
- feat(ci): send all build duration samples instead of median by @darccio in https://github.com/DataDog/dd-trace-go/pull/4881
- ci: add TRACE_STATS_COMPUTATION to system-tests matrix by @ichinaski in https://github.com/DataDog/dd-trace-go/pull/4882
- test(internal/appsec/apisec): fix flaky/broken API Sec sampler test on gotip by @RomainMuller in https://github.com/DataDog/dd-trace-go/pull/4864
- docs(agents): add comment style guideline to CONTRIBUTING.md by @mtoffl01 in https://github.com/DataDog/dd-trace-go/pull/4884
- ci(system-tests): pre-build weblog images once per variant and cache datadog-ci npm install to eliminate transient failures by @darccio in https://github.com/DataDog/dd-trace-go/pull/4903
- chore(deps): bump the github-actions group across 3 directories with 18 updates by @dependabot[bot] in https://github.com/DataDog/dd-trace-go/pull/4915
- chore: align Datadog Code Coverage uploads with Codecov (contrib, gotip, smoke-tests, core) by @nikita-tkachenko-datadog in https://github.com/DataDog/dd-trace-go/pull/4923
- chore: remove CodeCov upload from CI by @nikita-tkachenko-datadog in https://github.com/DataDog/dd-trace-go/pull/4901
- chore(deps): bump the github-actions group across 3 directories with 3 updates by @dependabot[bot] in https://github.com/DataDog/dd-trace-go/pull/4955
- chore(deps): bump the github-actions group across 3 directories with 4 updates by @dependabot[bot] in https://github.com/DataDog/dd-trace-go/pull/4961
- chore(scripts): add configaudit tool for tracking config migration progress by @bm1549 in https://github.com/DataDog/dd-trace-go/pull/4794
New Contributors
- @aqaurius6666 made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4766
- @XG-xin made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4728
- @MilanGarnier made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4790
- @imran-at-datadog made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4818
- @KowalskiThomas made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4767
- @hemeryar made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4825
- @DD-youssef-ahmed made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4814
- @Seanbon0611 made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4827
- @anna-git made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4803
- @Nitjsefni7 made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4883
- @nikita-tkachenko-datadog made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4923
- @aarsilv made their first contribution in https://github.com/DataDog/dd-trace-go/pull/4958
Full Changelog: https://github.com/DataDog/dd-trace-go/compare/v2.9.2...v2.10.0