What's Changed
Application Performance Monitoring (APM)
- feat(contrib/sarama): option to add custom consumer/producer span tags by @fabiomargarido in #3993
- fix(net/http): fix segfault on nil response by @eliottness in #4099
- fix(contrib/gorm.io): allow resource name to be overridden by custom tags by @will-bem in #3909
- feat(contrib/gin-gonic/gin): add WithStatusCheck and WithUseGinErrors options by @theo303 in #3984
- feat(contrib/mcp-go): Initial
mcp-gotracer implementation by @jboolean in #4100 - feat(contrib/mcp-go): Trace MCP session initializations with MLObs spans by @jboolean in #4101
- feat(contrib/mcp-go): Record MCP Session ID as tag by @jboolean in #4106
- feat: add request id headers to aws lambda start/end invocation calls by @ojproductions in #4136
- fix(contrib/net/http): when Wrapping use the WrappedHandler by @jacobmikesell in #4079
- fix(haproxy): data race on span TTL eviction by @eliottness in #4156
- feat(contrib/mcp-go): Simplified way to add tracing by @jboolean in #4122
- fix(contrib): enhance appsec tests with WAF timeout adjustments to GraphQL contribs by @darccio in #4160
- fix: database/sql tags not propagated from registers by @hannahkm in #4157
- fix(contrib/gorilla/mux): nil pointer exception in Orchestrion with Subrouter by @mtoffl01 in #4110
- fix(contrib/mcp-go): Report structured tool call errors as error spans by @jboolean in #4158
- fix(haproxy): data race on span TTL eviction 2 by @eliottness in #4163
- fix(gateway-api): correctly finish request-mirror span + fix missing query params by @eliottness in #4167
- feat(contrib/valyala/fasthttp): add orchestrion support by @darccio in #4162
- feat(contrib/mcp-go): Intent capture by @jboolean in #4123
- feat(contrib/go-sdk): Initial
go-sdktracer implementation by @jboolean in #4199 - fix(contrib/haproxy): don't warn on each cache deletion by @e-n-0 in #4229
- feat(profiler): switch back to zstd compression by default by @nsrip-dd in #4080
- chore(internal/version): bump release tag to v2.5.0-dev by @e-n-0 in #4081
- feat: v1 trace protocol implementation by @hannahkm in #3947
- fix(sampling): Force manual sampling on locked traces by @genesor in #4084
- chore: small improvements to v1 protocol by @hannahkm in #4090
- chore: revert breaking error tracking changes by @hannahkm in #4095
- fix(ddtrace/tracer): TestTracerTwiceStartRuntimeMetrics by @felixge in #4086
- fix: ETP wasn't checking for v1 endpoint in agent by @hannahkm in #4112
- fix(contrib/confluentinc/confluent-kafka-go/kafka.v2): ensure kafka.produce span is always finished by @pedroreys in #4107
- fix: Fix duplicate and out-of-order key in supported_configurations by @jboolean in #4121
- test(telemetry): atomic in tests by @eliottness in #4120
- chore(99designs/gqlgen): output more information on test failure by @RomainMuller in #4131
- fix(internal/remoteconfig): allow Remote Config singleton to be reentrant by @darccio in #4118
- feat: store OTEL process context in named anonymous mapping on Linux by @nsavoire in #3937
- fix(ddtrace/tracer): ensure that sampling tests on remote config update are consistent by @darccio in #4053
- fix: Use a real true value for headers by @ajgajg1134 in #4161
- chore(stacktrace): Add parseSymbol benchmark by @kakkoyun in #4169
- fix(ddtrace/tracer): ensure determinism on metrics tests by @darccio in #4168
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #3967
- chore(stacktrace): Use internal/stacktrace package where it possible by @kakkoyun in #4062
- refactor(stacktrace): remove unnecessary locking from segmentPrefixTrie by @kakkoyun in #4154
- refactor(stacktrace): remove unused prefixTrie implementation by @kakkoyun in #4150
- perf(stacktrace): optimize parseSymbol with zero-allocation implementation by @kakkoyun in #4148
- fix(ddtrace/tracer): update abandoned spans' tests to use eventual assertions for log checks by @darccio in #4170
- feat(internal/config): Introduce internal config package by @mtoffl01 in #4064
- fix: avoid race condition in TestSamplingDecision by @darccio in #4195
- refactor(internal/config): extract shared configProvider logic into generic get function by @mtoffl01 in #4203
- fix: Change analytics env var from MCPGO to MCP by @jboolean in #4205
- refactor(config): add test config isolation and support debug programmatic API by @mtoffl01 in #4204
App & API Protection
- fix(appsec): add missing
_dd.appsec_request_downstreamspan tag by @eliottness in #4130 - feat(instrumentation/appsec/emitter/waf): replace mapstructure/v2 by tailored code by @darccio in #4181
- chore: fix a number of AppSec tests being silently skipped by @RomainMuller in #4141
- fix(appsec/waf): remove RASPScope on downward API10 addresses by @eliottness in #4140
- refactor(appsec): disable error scrubbing on WAF error codes by @eliottness in #4159
- feat(appsec): waf upgrade + security response id by @e-n-0 in #4113
- fix(appsec):
jsoniterdecoder treats trailing whitespace as invalid by @RomainMuller in #4179
CI Visibility
- feat(civisibility): add
branchparameter to test management tests API by @juan-fernandez in #4197 - feat(civisibility): add a test optimization mode where tracer only works on test optimization spans. by @tonyredondo in #4193
- fix(internal/civisibility): fixes an scenario where we might be deadlocking by waiting on a channel. by @tonyredondo in #4177
- feat(internal/civisibility): subtest-level test management & flaky retry support. by @tonyredondo in #4063
Feature Flags
- feat(openfeature/provider): Add ability to pass context into openfeature provider to support cancellation by @leoromanovsky in #4087
- feat(openfeature): After Hook Exposure event writer by @eliottness in #4094
LLM Observability
- chore(llmobs): skip tracing for the internal llmobs http transport when using Orchestrion by @rarguelloF in #4139
- fix(llmobs): add missing type aliases by @rarguelloF in #4200
- fix(llmobs): fix parentID field when starting a span from a propagated span by @rarguelloF in #4146
- fix(llmobs): fix llmobs to apm link for spans by @rarguelloF in #4104
- chore(llmobs): add telemetry to track llmobs usage by @rarguelloF in #4088
General
- build(deps): bump github.com/containerd/containerd from 1.7.27 to 1.7.29 in /contrib/confluentinc/confluent-kafka-go/kafka.v2 by @dependabot[bot] in #4105
- chore: update golang.org/x/crypto to v0.45.0 by @darccio in #4145
- ci: enable codecov comments on PRs by @hannahkm in #4207
- ci: Add cron jobs on 3 workflows by @cbeauchesne in #4202
- chore: Add CODEOWNERS to internal packages by @kakkoyun in #4171
- fix(gitlab): deny benchmark runs on temporary graphite branches by @faydef in #4164
- build(deps): bump the gh-actions-packages group across 3 directories with 10 updates by @dependabot[bot] in #4073
- ci: set benchmarks to be interruptible outside main by @igoragoli in #4128
- chore(checks): Add Makefile checks by @kakkoyun in #4103
- chore(codeowners): add database monitoring team as code owner of the sql comment carrier by @na-ji in #4117
- fix(.gitlab): don't run benchmarks when tagging nested modules by @darccio in #4119
- chore(ci): Use runner:apm-k8s-m8g-metal for microbenchmarking by @ddyurchenko in #4126
- chore(ci): adds id-token: write permission to ecossystem-label-issu workflow by @cbeauchesne in #4125
- fix(ci): fix gin smoke test issue by @rarguelloF in #4142
- fix(ci): Migrating Config Registry CI Jobs to Support V2 Format by @mhlidd in #4133
- chore(ci): work around smoke test breaking changes by @nsrip-dd in #4098
- fix: codeowner script doesn't change directories as needed by @hannahkm in #4108
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #4212
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #4175
- fix: module go.opentelemetry.io/collector/pdata@latest found (v1.46.0), but does not contain package go.opentelemetry.io/collector/pdata/internal/data/protogen/profiles/v1development by @darccio in #4174
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #4184
- fix: bump golang.org/x/crypto to v0.45.0 (Dependabot alert 408) by @darccio in #4186
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #4196
- docs: update supported integrations documentation by @dd-octo-sts[bot] in #4206
- build(deps): bump the gh-actions-packages group across 2 directories with 6 updates by @dependabot[bot] in #4192
New Contributors
- @fabiomargarido made their first contribution in #3993
- @will-bem made their first contribution in #3909
- @theo303 made their first contribution in #3984
- @pedroreys made their first contribution in #4107
- @na-ji made their first contribution in #4117
- @jacobmikesell made their first contribution in #4079
- @nsavoire made their first contribution in #3937
- @faydef made their first contribution in #4164
- @juan-fernandez made their first contribution in #4197
Full Changelog: v2.4.0...v2.5.0