github DataDog/dd-trace-go v2.1.0

latest releases: v1.74.6, v2.2.3, internal/orchestrion/_integration/v2.2.3...
one month ago

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

  • fix (internal/civisibility): Fix features load race condition by @tonyredondo in #3501
  • fix (internal/civisibility): Fix environment variable parsing. by @tonyredondo in #3527
  • fix (internal/civisibility): use internal code coverage api to get the total percentage. by @tonyredondo in #3540
  • fix (internal/civisibility): fix travis environment variables mapping by @tonyredondo in #3573
  • fix (internal/civisibility): update the impacted tests algorithm to use only remote branches. by @tonyredondo in #3584
  • fix (internal/civisibility): fix code coverage stdout data race by @tonyredondo #3674
  • fix (internal/civisibility): fix p.serializationTime data race by @tonyredondo #3668
  • fix: data race in civisibility/integrations/logs/logs_payload.go by @darccio #3666
  • feat (internal/civisibility): Add missing provider's environment variables. by @tonyredondo in #3514
  • feat (internal/civisibility): civisibility mocktracer by @tonyredondo in #3507
  • feat (internal/civisibility): Parallel EFD support by @tonyredondo in #3488
  • feat (internal/civisibility): Add CIVisibility test event global hook by @tonyredondo in #3531
  • feat (internal/civisibility): add support for git tags by @tonyredondo in #3593
  • feat (internal/civisibility): Add test logs collection support by @tonyredondo in #3624

General

  • orchestrion/all: enforce using the latest tag by @RomainMuller in #3418
  • fix: orchestrion metadata not propagated into the config object by @RomainMuller #3734
  • internal/telemetry: fix telemetry metric submit datarace double pool insertion by @eliottness in #3430
  • internal/telemetry: add process tags to telemetry payloads by @rarguelloF in #3586
  • internal/telemetry: make sure only backend known metrics are released by @eliottness in #3614
  • internal/datastreams: add process tags to dsm payloads by @rarguelloF in #3585
  • feat(ddtrace/opentelemetry): update expected span names based on otelhttp version by @darccio in #3551

New Contributors

Full Changelog: v2.0.0...v2.1.0

Don't miss a new dd-trace-go release

NewReleases is sending notifications on new releases.