Skip to content

Releases: DataDog/dd-trace-go

1.23.1

13 Apr 07:21
9b02ec4
Compare
Choose a tag to compare

This release contains a patch which prevents HTTP integrations from writing the response header twice (#629).

1.23.0

07 Apr 15:15
fa73cfc
Compare
Choose a tag to compare

This release includes a number of great new features and fixes including the profiler package which will periodically collect and send application profiles to Datadog, many new configuration options, and improvements to the integrations.

These changes also include an important shift in how an application's "service name" works, which is detailed in the last section of these release notes.

Thanks to the community for all their contributions which have gone into this release. 🙇 🎉

Features

  • profiler: add profiler package (#598, #599, #601)
  • ddtrace/tracer: Add support for DD_SERVICE and DD_TAGS environment variables (#582) (Thanks @blaketastic2)
  • ddtrace/tracer: add Measured StartSpanOption (#591)
  • ddtrace/tracer: add WithServiceVersion option and support for DD_VERSION environment variable. (#607)
  • contrib/zenazn/goji/web: add goji integration (#604)
  • contrib/gorilla/mux: allow custom resource naming (#617) (Thanks @tanordheim)
  • contrib: add NoDebugStack support to web integrations (#616) (Thanks @ashanbrown)

Fixes and Improvements

  • contrib: Update non-client contrib packages to measure their spans (#603)
  • ddtrace/tracer: optimize baggage item handling. (#611)
  • contrib/google.golang.org/grpc: fix incorrect service name in grpc server (#613)
  • contrib: update non-client integrations to use configured service name (#614)

To view all changes check out new commits and the 1.23.0 milestone.

New service name settings

Datadog is making some changes involving its concept of a service. As part of that initiative, the semantics of setting the tracer's service name are changing slightly. Please note that nothing should change for users out of the box. Applications can safely upgrade to the new tracer without experiencing any breaking changes.

We have added a new option WithService and its counterpart, the DD_SERVICE environment variable as new ways to configure an application's service name. The only noticeable change that will occur when using the new configuration options is that certain "server" integrations will pick up this service name and use it in place of their default service name in cases where a custom name has not been configured for the integration.

For example, the contrib/gorilla/mux integration defaults to a service name of "mux.router". If a service name is set through the DD_SERVICE environment variable, or with the WithService option, integrations such as this will use that service name rather than their old default.

Integrations configured with a custom service name (e.g. using contrib/gorilla/mux's WithServiceName), will continue to use that custom service name.

The WithServiceName option has been deprecated, but will continue to function as it used to. Integrations will not pick up a service name set with WithServiceName.

1.22.0

26 Feb 22:07
be6e397
Compare
Choose a tag to compare

This is a small release that includes several performance improvements and bug fixes.

Features

  • contrib/graph-gophers/graphql-go: add operation name as a tag (#586) (Thanks @mikea)

Fixes and Improvements

  • ddtrace/tracer: Improve performance for several span operations (#583)
  • contrib/gin-gonic/gin: correct resource name for gin-gonic/gin versions >=v1.4.0 (#588, #593)
  • ddtrace/tracer: fix infinite recursion in (*safeSource).Seed call (#560) (Thanks @mbranch)

To view all changes check out new commits and the 1.22.0 milestone.

1.21.0

13 Feb 19:51
Compare
Choose a tag to compare

This release includes new rule-based trace sampling, asynchronous payload delivery, as well as other improvements and bug fixes. 🐶

Features

  • ddtrace/tracer: add rule-based sampler (#546)
  • ddtrace/tracer: send payloads asynchronously (#549)
  • contrib/gomodule/redigo: Support ConnWithTimeout interface (#554) (Thanks @abustany)
  • contrib/google.golang.org/grpc: add WithIgnoredMethods (#577) (Thanks @mathetake)

Fixes and Improvements

  • contrib/net/http: cause the default config to set the analytics rate in spanOpts (#564)
  • contrib/database/sql: implement driver.NamedValueChecker (#568)
  • ddtrace/tracer: fix regression when flushing based on size (#570)
  • ddtrace/mocktracer: make (*mockspan).Finish idempotent (#573) (Thanks @phoenix2x)

To view all changes check out new commits and the 1.21.0 milestone.

1.20.1

15 Jan 12:50
2f7a709
Compare
Choose a tag to compare

This release fixes a problem where it might be possible to lose data if more than 5MB get accumulated in under two seconds.

The change can be seen here.

1.20.0

14 Jan 14:57
c45808b
Compare
Choose a tag to compare

This release includes health metrics, support for setting a global environment, and various other features and bug fixes. 🍾

Features

  • contrib/google.golang.org/grpc: support differentiation between streaming and unary RPCs (#523)
  • ddtrace/tracer: add the WithEnv StartOption to the tracer. (#529)
  • contrib/net/http: add RTWithServiceName option for RoundTripper (#531)
  • ddtrace/tracer: report health metrics (#534)

Fixes

  • contrib/go-redis/redis: return a new client from WithContext to eliminate race conditions. (#530)
  • ddtrace/tracer: improve handling of integer tags. (#542)

To view all changes check out new commits and the 1.20.0 milestone.

1.19.0

31 Oct 17:33
d0af966
Compare
Choose a tag to compare

Features

  • contrib/hashicorp/vault: add integration for Vault API (#510)
  • contrib/twitchtv/twirp: support for twirp servers and clients (#513)

Fixes

  • ddtrace/tracer: improve performance of StartSpan (#520)
  • ddtrace/tracer: ensure hanging traces are flushed when stopping (#527)

To view all changes check out new commits and the 1.19.0 milestone.

1.18.0

24 Sep 05:58
c8d43ed
Compare
Choose a tag to compare

The biggest change in this release is runtime metrics! Automatically submit Go runtime metrics with your tracer, by enabling the tracer.WithRuntimeMetrics option on start time. For more information see #497!

Features

  • contrib/jinzhu/gorm: connect traces using context (#491)
  • contrib/hashicorp/consul: add tracing for consul clients (#494) 🆕
  • ddtrace/tracer: add go runtime metrics (#497) 🆕

Fixes

  • contrib/go-redis/redis: correctly set analytics rate of 0 for Pipeline (#496)
  • ddtrace/tracer: simplify channels (#498)

To view all changes check out new commits and the 1.18.0 milestone.

1.17.0

02 Sep 09:37
e5f0418
Compare
Choose a tag to compare

Features

  • go.mongodb.org/mongo-driver/mongo: update to v1.1.0 (#489)
  • contrib/gin-gonic/gin: Add WithResourceNamer to gintrace #477 /thanks @NilsJPWerner
  • ddtrace/mocktracer: respect tracer.WithSpanID when creating a new span (#482) /thanks @EmilGedda
  • contrib/database/sql: add support for additional tags through context (#484) /thanks @Code-Hex

To view all changes check out new commits and the 1.17.0 milestone.

1.16.1

26 Jul 09:03
612cde3
Compare
Choose a tag to compare

This release contains a fix for a non-critical race condition occurring when the API rejects the payload for being too large (reading only the partial body) (#475)