- feat: Set span outcome to success or failure depending on whether an error was captured during when the span was active. #1814
feat: Adds public
setOutcomemethod to span and transaction APIs, and adds a top level
setSpanOutcometo set outcome values for the current active transaction or active span.
transactionSampleRatevalue to 4 decimal places of precision according to the shared APM spec. This ensures that propagated sampling rate in the
tracestateheader is short and consistent. #1979
This will be used by ecs-logging packages to integrate with APM.
feat: support numeric and boolean labels #1909
Add an optional
apm.setLabel(name, version, stringify = true)and
apm.addLabels(labels, stringify = true), which can be set
falseto allow numeric and boolean labels. Stringify defaults to true for backwards compatibility — stringification will be removed in a future major version.
feat: added support for cloud metadata fetching #1937
Agent now collects information about its cloud environment and includes this data in the APM Server’s metadata payload. See the spec for more information.
feat: Improve handling of raw body parsing
The agent will now report raw/
Bufferencoded post bodies as <Buffer>.
feat: Add support for api keys #1818
This allows the usage of API keys for authentication to the APM server
The instrumentation of the legacy "elasticsearch" package has also changed slightly to commonalize:
- "span.context.destination" is set on all Elasticsearch spans, not just a subset of query-like API endpoints.
For query-like API endpoints (e.g.
/_search), the capturing of query details on "span.context.db.statement" has changed (a) to include both the query params and the request body if both exist (separated by
\n\n) and (b) to URL encode the query params, rather than JSON encoding.
captureAttributesboolean option to
apm.captureError()to allow disabling the automatic capture of Error object properties. This is useful for cases where those properties should not be sent to the APM Server, e.g. for performance (large string fields) or security (PII data). #1912
log_levelcentral config support. #1908
feat: implemented sanitize_feature_names specification
Allows users to configure a list of wildcard patterns to remove items from the agent’s HTTP header and
fix: Fix parsing of comma-separated strings for relevant config vars to allow whitespace around the commas. E.g.:
export ELASTIC_APM_TRANSACTION_IGNORE_URLS='/ping, /metrics*'
Config vars affected are:
fix: Correct the environment variable for setting
transactionIgnoreUrl(added in v3.9.0) from
feat: support fastify 3 #1891
Adds .default and .fastify module.exports to instrumented fastify function for 3.x line, and prefers req.routerMethod and req.routerPath for transaction name
feat: Set "destination" context on spans for "mongodb". #1893
This allows Kibana APM Service Maps to show a "mongodb" node for services using the mongodb package (which includes mongoose and mongojs).
feat: transactionIgnoreUrl wildcard matching #1870
Allows users to ignore URLs using simple wildcard matching patterns that behave the same across language agents. See https://github.com/elastic/apm/issues/144
- feat: expand k8s pod ID discovery regex #1863
feat: implements tracestate #1828
Expands support for the W3C Trace Context specification by adding a tracestate header implementation, and uses this new header to track the Elastic transaction sample rate across a trace’s service boundaries.
feat: add span and transaction outcome #1824
This adds an "outcome" field to HTTP(S) transactions and spans.
- feat(knex): add support for 0.21.x #1801
- feat(redis): add support for v3.x #1641
- feat(graphql): add support for 15.x #1795
- feat(koa-router): add support for 9.x #1772
- fix(elasticsearch): ensure requests can be aborted #1566
- fix: end span if outgoing http request ends prematurely #1583
- fix: don’t throw on invalid URL #1771
- fix: patch apollo-server-core > 2.14 correctly #1796
- fix: add currentTraceIds to typings #1733
feat: allow manual instrumentation with
feat: allow setting span/transaction
actionseparately (the behavior of the old
typehas changed) #1292
externalas span type instead of
refactor(graphql): use custom transaction type
graphqlfor graphql requests instead of
disableInstrumentationsnow behaves differently) #1298
- chore: remove deprecated APIs #1413
- chore: drop support for older Node.js versions #1383