Releases: DataDog/dd-trace-js
0.13.0
Deprecation Notice
This release will be the last minor release with support for Node 4 and Node 6. It will still be maintained for bug fixes as a separate branch until April 30th, 2020 to give you time to update, but no new feature will be added.
Going forward, our release policy for Node version support is 1 year after a version has reached end-of-life, and only for bug fixes.
Bug Fixes
core: fix jest tests breaking because of unsupported require syntax (#601)
graphql: fix missing TS type for passing variables as an array to graphql (#610), fixes #608
mongodb-core: fix mongodb-core plugin swallowing missing callback errors (#615)
Features
core: add support for distributed client sampling (#607)
core: add experimental support for B3 propagation (#607)
connect: add support for connect (#605)
fastify: add support for fastify (#614), closes #287
tedious: add tedious integration (#599)
Improvements
core: reduce memory footprint of spans when in a scope and the trace is finished (#609)
0.13.0-beta.3
v0.13.0-beta.3 v0.13.0-beta.3
0.13.0-beta.2
v0.13.0-beta.2 v0.13.0-beta.2
0.13.0-beta.1
v0.13.0-beta.1 v0.13.0-beta.1
0.12.1
Bug Fixes
- core: fix http client holding onto async resources in some cases (#595)
- core: fix auto instrumentation of loaded modules without an entrypoint defined (#587), thanks @BrunoBerisso!
- mysql: fix wrong parent span for pooled queries (#584), thanks @fragglebob!
- npm: fix
--build-from-source
flag not working (#594), thanks @eaviles! - npm: fix socket hanging when trying to download prebuilt addons behind a proxy (#592)
0.12.0
Bug Fixes
core: fix memory leak caused by a bug in older Node versions with HTTP keep-alive (#581)
dns: fix dns
plugin not working in Node 4 (#575)
Features
core: add option to report the hostname from the tracer (#562)
koa: add support for koa-route (#561)
paperplane: add paperplane integration (#582), thanks @flintinatux!
promise: add context propagation support for promise (#570)
promise-js: add context propagation support for promise-js (#572)
Improvements
core: update analytics config with a simpler API that also fixes plugin config (#573)
core: add an alternative scope manager in pure JS for older versions of Node (#579)
Breaking Changes
The Trace Analytics client configuration per span name was removed since it was confusing and led to issues with our integrations. We are planning to bring the feature back in the future but with an easier to use API.
0.11.2
0.11.1
0.11.0
This release includes the beta of Node Runtime Metrics. Currently it has to be enabled by contacting the support team. Please see the documentation for more details.
Features
- core: add support for forced tracing (#530)
- core: add support to split object tags as a tag for each property (#498)
- core: add node runtime metrics as a beta feature (#482)
- core: add support for unix sockets for agent requests (#479), thanks @lennyburdette!
- http: add request hook for http client request spans (#529), closes #524
Improvements
- core: update writer to buffer by payload size instead of by trace count (#499)
- core: update span.addTags() to accept error objects (#486)
Breaking Changes
HTTP request hooks
The http
integration now supports request hooks for both servers and clients. If an existing hook is configured on the shared configuration, it will now apply to both servers and clients.
Depending on your use case, select one of the options below.
Single hook for servers and clients
tracer.use('http', {
hooks: {
request: (span, req, res) => {
// modify the span
}
}
})
Different hooks for servers and clients
tracer.use('http', {
server: {
hooks: {
request: (span, req, res) => {
// modify the span
}
}
},
client: {
hooks: {
request: (span, req, res) => {
// modify the span
}
}
}
})
span.addTags()
now splits objects in multiple tags
Before this release, objects would simply be serialized as a string. In most cases this would result in [object Object]
which is undesirable. Using JSON.stringify()
would have been an improvement, but would end up adding a tag that is difficult to reason about and use for search & analytics. Instead, objects passed to span.addTags()
will now be separated into a individual tags for each property, up to 3 levels of depth.
Before
const obj = {
foo: 'bar',
baz: 'qux'
}
span.addTags('test', obj)
// test: [object Object]
After
const obj = {
foo: 'bar',
baz: 'qux'
}
span.addTags('test', obj)
// test.foo: bar
// test.baz: qux
0.10.4
Bug Fixes
- core: fix trace analytics env var inconsistent with other tracers (#528)
- core: fix log injection causing side effects on the provided object (#527), fixes #523
- cassandra-driver: fix client.batch() promise support in cassandra-driver plugin (#525), fixes #520
- pg: fix error in pg plugin when using pg without pg-native (#526), fixes #522
- plugins: fix query string being included in the http.url tag (#531)
- typescript: add docs folder to npmignore except typescript definitions (#532), fixes #513