Skip to content

Releases: DataDog/dd-trace-js

0.11.0-beta.2

25 Mar 19:34
Compare
Choose a tag to compare
0.11.0-beta.2 Pre-release
Pre-release
v0.11.0-beta.2

v0.11.0-beta.2

0.10.2

19 Mar 20:01
752d049
Compare
Choose a tag to compare

Bug Fixes

cassandra-driver: fix error when batch() is called without a callback (#495), fixes #494

0.10.1

14 Mar 15:18
d4739e8
Compare
Choose a tag to compare

Bug Fixes

core: fix no-op scope manager never calling the activate callback (#483)
express: fix express request marked as error regardless of status code (#485)
typescript: fix wrong return types for scope methods (#481), fixes #480, thanks @perryh!

0.10.0

07 Mar 19:07
a2fcaea
Compare
Choose a tag to compare

Bug Fixes

  • express: fix error in express plugin with capturing groups in routes (#468), fixes #466
  • plugins: fix span types for http servers and clients (#470)
  • typescript: fix missing TracerOptions.url typing (#476), thanks @lennyburdette!

Features

  • cassandra-driver: add support for auto instrumentation of cassandra-driver (#472)
  • core: add support for disabling individual plugins (#471)
  • core: add client configuration of trace analytics (#469)
  • core: add synthetics integration (#461)
  • core: add tracer.trace() and tracer.wrap() as high level APIs (#457)
  • graphql: add span type to graphql to enable syntax highlighting (#474)
  • koa: add automatic instrumentation for koa middleware (#463)
  • pg: add support for pg-native (#473), closes #334

0.9.3

26 Feb 15:48
3c634e2
Compare
Choose a tag to compare

Bug Fixes

  • core: fix typescript breaking with different opentracing versions (#465), fixes #462 #464

0.9.2

25 Feb 13:57
ee93c92
Compare
Choose a tag to compare

Bug Fixes

  • core: fix missing typescript definitions because of npmignore rules (#459), fixes #458

0.9.1

22 Feb 19:23
b0ca3bb
Compare
Choose a tag to compare

Bug Fixes

  • core: fix importing the library with typescript (#454)

0.9.0

21 Feb 22:13
41396ff
Compare
Choose a tag to compare

From this release moving forward, we are including TypeScript definition files directly in the project. This will make it easier to officially support them, have parity between the definitions and the code for every new versions, and have better visibility on requested changes. If you were using @types/dd-trace, it is highly recommended to migrate to the official typings instead. Simply remove the dependency and your IDE/transpiler should pick up the change.

Bug Fixes

  • http: fix suppressed error event and span never finishing (#450)
  • http: fix http req.abort() support and flushing stream too early (#448)
  • restify: fix restify crashing with array middleware (#449), fixes #440

Features

Improvements

  • http: add header tags and separate client/server config in http plugin (#433)

Breaking Changes

GraphQL is now instrumented according to the Apollo Engine Reporting format

This change has no impact on code, but trace structure has changed to be in line with Apollo Engine Reporting format. Let us know what you think of the new format!

tracer.trace() is deprecated

It will probably come back in the future, but the current implementation relied on the old scope manager which has been rewritten. tracer.startSpan() should be used instead.

Scope manager was rewritten with a CPS style API.

This is a change we have been trying to avoid, but is unfortunately necessary to ensure the stability of the tracer and proper context propagation. The previous implementation was overly complex, difficult to use and prone to errors which led to many issues. By using continuation passing style, it's much easier to reason about, the implementation is very simple and it's more powerful since the scope persists for the entire scope of the function, both synchronous or asynchronous.

You can find the documentation for the new API here.

Here are a few examples of how to migrate to the new API:

// === old API ===

const scope = tracer.scopeManager().activate(span)

tracer.scopeManager().active() === scope
scope.span() === span

scope.close()

// === new API ===

tracer.scope().activate(span, () => {
  tracer.scope().active() === span
})
// === old API ===

const scope = tracer.scopeManager().activate(span)

setTimeout(() => {
  tracer.scopeManager().active() === scope
  scope.span() === span

  scope.close()

  tracer.scopeManager().active() === null
})

tracer.scopeManager().active() === scope

// === new API ===

tracer.scope().activate(span, () => {
  setTimeout(() => {
    tracer.scope().active() === span
  })
  
  tracer.scope().active() === span
})

tracer.scope().active() === null

0.8.0

06 Feb 15:35
c8c49dc
Compare
Choose a tag to compare

Bug Fixes

  • core: fix baggage items at the span level instead of trace level (#398)

Features

  • bunyan: add automatic log injection of tracer identifiers for bunyan (#410)
  • core: add log propagator and trace identifiers for log correlation (#396)
  • express: add middleware and stack trace support for express (#399)
  • pino: add automatic log injection of tracer identifiers for pino (#414)
  • winston: add automatic log injection of tracer identifiers for winston (#408)

Breaking Changes

  • All properties of span.context() are now private. They were technically always private, but it was not clear since they were not prefixed with an underscore. If you were using any of these values, please contact us so we can provide an alternative.

0.7.3

22 Jan 20:14
9626425
Compare
Choose a tag to compare

Bug Fixes

  • redis: fix error in redis plugin for commands without a callback (#404)