Skip to content

Latest commit

 

History

History
1053 lines (821 loc) · 36.4 KB

CHANGELOG.asciidoc

File metadata and controls

1053 lines (821 loc) · 36.4 KB
Note
Release notes are best read in our documentation at elastic.co

Node.js Agent version 3.x

3.15.0 - 2021/05/19

Features
  • Add support for Node.js v16. (This also drops testing of Node.js v13 releases.)

Bug fixes
  • Update TypeScript typings for Agent.setLabel and Agent.addLabels to include the stringify argument that was added in v3.11.0.

3.14.0 - 2021/04/19

Features
  • Add apm.addMetadataFilter(fn) for filtering the metadata object sent to APM server.

  • The handling of sending events (transactions, spans, errors) to APM server has improved in a few ways. During temporary spikes in load and/or an APM server that is unresponsive, the agent will buffer a number of events and drop them above a certain limit (configurable via [max-queue-size]). This helps ensure the agent does not overly consume memory and CPU. As well, the agent will now backoff when the APM server errors. Finally, improved error handling means it will terminate failing requests to the APM server more quickly.

    Note: v1 of this agent (EOL’d 2 years ago), included a maxQueueSize config variable with a different meaning. If you have a lingering usage of that setting (also possibly as the ELASTIC_APM_MAX_QUEUE_SIZE environment variable), then it should be removed.

  • Adds support for Amazon SQS queues via aws-sdk instrumentation that partially implements the APM messaging spec, and adds queue.latency.min.ms, queue.latency.max.ms, and queue.latency.avg.ms metrics for SQS queues.

Bug fixes
  • Fixed bug where the URL property for outgoing HTTP request spans was set with the server’s IP address rather than its hostname. The Agent now sets this property with the actual URL requested by Node.js.

  • Fixed bug where external services were not listed under Dependencies on the APM Service Overview page due to the trace-context propagated sample_rate value not being set on either transactions or spans.

3.13.0 - 2021/04/06

Features
  • The APM agent’s own internal logging now uses structured JSON logging using the pino API, and formatted in {ecs-logging-ref}/intro.html[ecs-logging] format. The log records on stdout are now single-line JSON objects. For example:

    # Before
    APM Server transport error (ECONNREFUSED): connect ECONNREFUSED 127.0.0.1:8200
    
    # After
    {"log.level":"error","@timestamp":"2021-03-19T00:21:17.571Z","log":{"logger":"elastic-apm-node"},
    "ecs":{"version":"1.6.0"},"message":"APM Server transport error (ECONNREFUSED): connect ECONNREFUSED 127.0.0.1:8200"}

    Pretty formatting (and filtering) on the console may be done via the ecslog tool.

    A custom [logger] is still supported as before. However, a non-pino custom logger will only receive the "message" field, and not structured log fields as they are added over time.

  • Add support for setting the ELASTIC_APM_LOGGER=false environment variable to disable/ignore a given custom [logger]. This is to support easier [debug-mode] for troubleshooting.

Bug fixes
  • Lock package dependency "[email protected]" to avoid using v9.7.0 for now, because it is breaking tests. A coming release will get back on the latest of this dependency. {issues}2032[#2032]

  • Remove the "ancestors" field from a log.trace message on startup. Its info is a duplicate of info in the "startTrace" field in the same log record. {pull}2005[#2005]

  • Remove the accidental nodejs.eventloop.delay.ns metric that was always reporting a zero value. The existing nodejs.eventloop.delay.avg.ms is the intended metric. {pull}1993[#1993]

3.12.1 - 2021/02/25

Bug fixes
  • fix: Update apm-server client to fix a {issues}1749[possible crash] when polling for central config.

3.12.0 - 2021/02/21

Features
  • feat: Set span outcome to success or failure depending on whether an error was captured during when the span was active. {issues}1814[#1814]

  • feat: Adds public setOutcome method to span and transaction APIs, and adds a top level setTransactionOutcome and setSpanOutcome to set outcome values for the current active transaction or active span.

  • Limit the transactionSampleRate value to 4 decimal places of precision according to the shared APM spec. This ensures that propagated sampling rate in the tracestate header is short and consistent. {pull}1979[#1979]

Bug fixes
  • fix: It was possible for fetching central config to result in the cloudProvider config value being reset to its default. {issues}1976[#1976]

  • fix: fixes bug where tedious could crash the agent on bulk inserts {pull}1935[#1935]
    Reported via the forum. The error symptom was: Cannot read property 'statement' of undefined

3.11.0 - 2021/02/08

Features
  • feat: add apm.getServiceName() {pull}1949[#1949]
    This will be used by ecs-logging packages to integrate with APM.

  • feat: support numeric and boolean labels {pull}1909[#1909]
    Add an optional stringify option to apm.setLabel(name, version, stringify = true) and apm.addLabels(labels, stringify = true), which can be set false to 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 {pull}1937[#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.

3.10.0 - 2021/01/11

Features
  • feat: Improve handling of raw body parsing The agent will now report raw/Buffer encoded post bodies as '<Buffer>'.

  • feat: Add support for api keys {pull}1818[#1818]
    This allows the usage of API keys for authentication to the APM server

  • feat: Add automatic instrumentation of the @elastic/elasticsearch package {pull}1877[#1870]

    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.

  • feat: Add captureAttributes boolean 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). {pull}1912[#1912]

  • feat: Add log_level central config support. {pull}1908[#1908]
    Spec: https://github.com/elastic/apm/blob/master/specs/agents/logging.md

  • 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 application/x-www-form-urlencoded payloads.

Bug fixes
  • 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: disableInstrumentations, transactionIgnoreUrls addPatch, and globalLabels.

  • fix: Correct the environment variable for setting transactionIgnoreUrl (added in v3.9.0) from ELASTIC_TRANSACTION_IGNORE_URLS to ELASTIC_APM_TRANSACTION_IGNORE_URLS.

3.9.0 - 2020/11/30

Features
  • feat: support fastify 3 {pull}1891[#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". {pull}1893[#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 {pull}1870[#1870]
    Allows users to ignore URLs using simple wildcard matching patterns that behave the same across language agents. See elastic/apm#144

Bug fixes
  • fix: treat set-cookie in response headers as sensitive data {pull}1886[#1886]

  • fix: Synchronous spans would never have span.sync == true. {pull}1879[#1879]

3.8.0 - 2020/11/09

Features
  • feat: expand k8s pod ID discovery regex {pull}1863[#1863]

  • feat: implements tracestate {pull}1828[#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 {pull}1824[#1824]
    This adds an "outcome" field to HTTP(S) transactions and spans.

Bug fixes
  • fix(pg): prevent unhandled promise rejection {pull}1846[#1846]

  • fix: [email protected] instrumentation was broken {pull}1852[#1852]

  • A number of fixes to the test suite.

3.7.0 - 2020/8/10

  • feat(knex): add support for 0.21.x {pull}1801[#1801]

  • feat(redis): add support for v3.x {pull}1641[#1641]

  • feat(graphql): add support for 15.x {pull}1795[#1795]

  • feat(koa-router): add support for 9.x {pull}1772[#1772]

  • fix(elasticsearch): ensure requests can be aborted {pull}1566[#1566]

  • fix: end span if outgoing http request ends prematurely {pull}1583[#1583]

  • fix: don’t throw on invalid URL {pull}1771[#1771]

  • fix: patch apollo-server-core > 2.14 correctly {pull}1796[#1796]

  • fix: add currentTraceIds to typings {pull}1733[#1733]

3.6.1 - 2020/5/20

  • fix(package): bump elastic-apm-http-client to ^9.4.0 {pull}1756[#1756]

3.6.0 - 2020/5/18

  • feat: add destination metadata for db spans {pull}1687[#1687]

  • feat: add support for Node.js 14 {pull}1742[#1742]

  • feat(pg): add support for pg v8.x {pull}1743[#1743]

  • feat: add metrics for external memory {pull}1724[#1724]

  • feat: enrich spans with destination info {pull}1685[#1685]

  • fix(instrumentation): add .js to module path {pull}1711[#1711]

3.5.0 - 2020/3/9

  • feat(error): get stack trace from Error-like objects {pull}1613[#1613]

  • fix: add logUncaughtExceptions conf option to TypeScript typings {pull}1668[#1668]

3.4.0 - 2020/2/21

  • feat: support W3C TraceContext traceparent header {pull}1587[#1587]

  • feat: add custom metrics API (experimental) {pull}1571[#1571]

  • feat(koa-router): add support for v8.x {pull}1642[#1642]

  • fix(cassandra): improve support for cassandra-driver v4.4.0+ {pull}1636[#1636]

  • fix: support promisifying setTimeout and friends {pull}1636[#1636]

3.3.0 - 2019/12/13

  • feat(config): add serverCaCertFile config {pull}1560[#1560]

  • feat(config): add central config support for transactionMaxSpans and captureBody {pull}1555[#1555]

3.2.0 - 2019/11/19

  • fix(metrics): only register collectors if enabled {pull}1520[#1520]

  • fix(ioredis): prevent unhandled promise rejection {pull}1523[#1523]

  • chore: add Node 13 to supported engines {pull}1524[#1524]

3.1.0 - 2019/10/16

Features
  • feat(mongodb): instrumentation {pull}1423[#1423]

  • fix(package): update elastic-apm-http-client to version 9.0.0 {pull}1419[#1419]

  • perf: cache 'ids' value of transactions and spans {pull}1434[#1434]

Bug fixes
  • fix: always end transaction when socket is closed prematurely {pull}1439[#1439]

  • fix: change logUncaughtExceptions default to false {pull}1432[#1432]

  • fix: write stack trace of uncaught exceptions to STDERR {pull}1429[#1429]

3.0.0 - 2019/9/30

Breaking changes
  • feat: allow manual instrumentation with instrument: false {pull}1114[#1114]

  • feat: allow setting span/transaction type, subtype, and action separately (the behavior of the old type has changed) {pull}1292[#1292]

  • feat: use external as span type instead of ext {pull}1291[#1291]

  • refactor(graphql): use custom transaction type graphql for graphql requests instead of request {pull}1245[#1245]

  • feat(http): add instrumentIncomingHTTPRequests config (disableInstrumentations now behaves differently) {pull}1298[#1298]

  • chore: remove deprecated APIs {pull}1413[#1413]

  • chore: drop support for older Node.js versions {pull}1383[#1383]

Node.js Agent version 2.x

2.17.3 - 2020/2/27

Bug fixes
  • fix: support promisifying setTimeout and friends {pull}1649[#1649]

  • fix(cassandra): improve support for cassandra-driver v4.4.0+ {pull}1649[#1649]

  • fix(knex): make stack traces work in 0.18+ {pull}1500[#1500]

  • fix(tedious): ensure shimmed module exposes same API {pull}1496[#1496]

  • fix(metrics): do not send transaction breakdowns when disabled {pull}1489[#1489]

  • fix(tedious): support 6.5+ {pull}1488[#1488]

  • fix: always end transaction when socket is closed prematurely {pull}1445[#1445]

  • perf: cache 'ids' value of transactions and spans {pull}1438[#1438]

2.17.2 - 2019/10/2

Bug fixes
  • chore(http): workaround(s) to suppress DEP0066 warnings {pull}1424[#1424]

2.17.1 - 2019/9/26

Bug fixes
  • fix: support all falsy return values from error filters {pull}1394[#1394]

  • fix: capture all non-string http bodies {pull}1381[#1381]

2.17.0 - 2019/9/19

Features
  • feat: add support for @koa/router {pull}1346[#1346]

  • feat: add methods for logging trace information {pull}1335[#1335]

Bug fixes
  • fix: improve debug output when detecting incoming http request {pull}1357[#1357]

  • fix(http): response context propagation on Node.js 12.0 - 12.2 {pull}1339[#1339]

2.16.2 - 2019/9/3

Bug fixes
  • fix(lambda): handle traceparent case-insensitively {pull}1319[#1319]

2.16.1 - 2019/8/28

Bug fixes
  • fix: avoid throwing when agent is in active: false mode {pull}1278[#1278]

2.16.0 - 2019/8/26

Features
  • feat(memcached): instrument memcached v2.2.0 and above {pull}1144[#1144]

  • feat(config): add configFile config option {pull}1303[#1303]

Bug fixes
  • fix: bug where spans sometimes wouldn’t have stack traces {pull}1299[#1299]

  • fix(async_hooks): properly update sync flag {pull}1306[#1306]

  • fix: change agent active status log message to debug level {pull}1300[#1300]

2.15.0 - 2019/8/15

Features
  • feat(express-graphql): add support for v0.9 {pull}1255[#1255]

  • feat(metrics): add metricsLimit option {pull}1273[#1273]

2.14.0 - 2019/8/12

Features
  • feat(hapi): support new @hapi/hapi module {pull}1246[#1246]

  • feat: allow agent.clearPatches to be called with array of names {pull}1262[#1262]

Bug fixes
  • fix: be less chatty if span stack traces cannot be parsed {pull}1274[#1274]

  • perf: use for-of instead of forEach {pull}1275[#1275]

2.13.0 - 2019/7/30

Bug fixes
  • fix: standardize user-agent header {pull}1238[#1238]

Features
  • feat: add support for APM Agent Configuration via Kibana {pull}1197[#1197]

  • feat(metrics): breakdown graphs {pull}1219[#1219]

  • feat(config): default serviceVersion to package version {pull}1237[#1237]

2.12.1 - 2019/7/7

Bug fixes
  • fix(knex): abort early on unsupported version of knex {pull}1189[#1189]

2.12.0 - 2019/7/2

Features
  • feat(metrics): add runtime metrics {pull}1021[#1021]

  • feat(config): add environment option {pull}1106[#1106]

2.11.6 - 2019/6/11

Bug fixes
  • fix(express): don’t swallow error handling middleware {pull}1111[#1111]

2.11.5 - 2019/5/27

Bug fixes
  • fix(metrics): report correct CPU usage on Linux {pull}1092[#1092]

  • fix(express): improve names for routes added via app.use() {pull}1013[#1013]

2.11.4 - 2019/5/27

Bug fixes
  • fix: don’t add traceparent header to signed AWS requests {pull}1089[#1089]

2.11.3 - 2019/5/22

Bug fixes
  • fix(span): use correct logger location {pull}1081[#1081]

2.11.2 - 2019/5/21

Bug fixes
  • fix: url.parse expects req.url not req {pull}1074[#1074]

  • fix(express-slash): expose express handle properties {pull}1070[#1070]

2.11.1 - 2019/5/10

Bug fixes
  • fix(instrumentation): explicitly use require {pull}1059[#1059]

  • chore: add Node.js 12 to package.json engines field {pull}1057[#1057]

2.11.0 - 2019/5/3

Bug fixes
  • chore: rename tags to labels {pull}1019[#1019]

Features
  • feat(config): support global labels {pull}1020[#1020]

Bug fixes
  • fix(config): do not use ELASTIC_APM_ prefix for k8s {pull}1041[#1041]

  • fix(instrumentation): prevent handler leak in bindEmitter {pull}1044[#1044]

2.10.0 - 2019/4/15

Features
  • feat(express-graphql): add support for version ^0.8.0 {pull}1010[#1010]

Bug fixes
  • fix(package): bump elastic-apm-http-client to ^7.2.2 so Kubernetes metadata gets corrected recorded {pull}1011[#1011]

  • fix(ts): add TypeScript typings for new traceparent API {pull}1001[#1001]

2.9.0 - 2019/4/10

Features
  • feat: add traceparent getter to agent, span and transaction {pull}969[#969]

  • feat(template): add support for jade and pug {pull}914[#914]

  • feat(elasticsearch): capture more types of queries {pull}967[#967]

  • feat: sync flag on spans and transactions {pull}980[#980]

Bug fixes
  • fix(agent): init config/logger before usage {pull}956[#956]

  • fix: don’t add response listener to outgoing requests {pull}974[#974]

  • fix(agent): fix basedir in debug mode when starting agent with -r {pull}981[#981]

  • fix: ensure Kubernetes/Docker container info is captured {pull}995[#995]

2.8.0 - 2019/4/2

Features
  • feat: add agent.setFramework() method {pull}966[#966]

  • feat(config): add usePathAsTransactionName config option {pull}907[#907]

  • feat(debug): output configuration if logLevel is trace {pull}972[#972]

Bug fixes
  • fix(express): transaction default name is incorrect {pull}938[#938]

2.7.1 - 2019/3/28

Bug fixes
  • fix: instrument http/https.get requests {pull}954[#954]

  • fix: don’t add traceparent header to S3 requests {pull}952[#952]

2.7.0 - 2019/3/26

Features
  • feat: add patch registry {pull}803[#803]

  • feat: allow sub-modules to be patched {pull}920[#920]

  • feat: add TypeScript typings {pull}926[#926]

Bug fixes
  • fix: update measured-reporting to fix Windows installation issue {pull}933[#933]

  • fix(lambda): do not wrap context {pull}931[#931]

  • fix(lambda): fix cloning issues of context {pull}947[#947]

  • fix(metrics): use noop logger in metrics reporter {pull}912[#912]

  • fix(transaction): don’t set transaction result if it’s null {pull}936[#936]

  • fix(agent): allow flush callback to be undefined {pull}934[#934]

  • fix: handle promise rejection in case Elasticsearch client throws {pull}870[#870]

  • chore: change 'npm run' command namespaces {pull}944[#944]

2.6.0 - 2019/3/5

Features
  • feat: add support for Fastify framework {pull}594[#594]

  • feat(lambda): accept parent span in lambda wrapper {pull}881[#881]

  • feat(lambda): support promise form {pull}871[#871]

Bug fixes
  • fix: ensure http headers are always recorded as strings {pull}895[#895]

  • fix(metrics): prevent 0ms timers from being created {pull}872[#872]

  • fix(config): apiRequestSize should be 768kb {pull}848[#848]

  • fix(express): ensure correct transaction names {pull}842[#842]

2.5.1 - 2019/2/4

Bug fixes
  • fix(metrics): ensure NaN becomes 0, not null {pull}837[#837]

2.5.0 - 2019/1/29

Features
  • feat(metrics): added basic metrics gathering {pull}731[#731]

2.4.0 - 2019/1/24

Features
  • feat: add ability to set custom log message for errors {pull}824[#824]

  • feat: add ability to set custom timestamp for errors {pull}823[#823]

  • feat: add support for custom start/end times {pull}818[#818]

2.3.0 - 2019/1/22

Bug fixes
  • fix(parsers): move port fix into parser {pull}820[#820]

  • fix(mongo): support 3.1.10+ {pull}793[#793]

Features
  • feat(config): add captureHeaders config {pull}788[#788]

  • feat(config): add container info options {pull}766[#766]

2.2.1 - 2019/1/21

Bug fixes
  • fix: ensure request.url.port is a string on transactions {pull}814[#814]

2.2.0 - 2019/1/21

Features
  • feat(koa): record framework name and version {pull}810[#810]

  • feat(cassandra): support 4.x {pull}784[#784]

  • feat(config): validate serverUrl port {pull}795[#795]

  • feat: add transaction.type to errors {pull}805[#805]

Bug fixes
  • fix: filter outgoing http headers with any case {pull}799[#799]

  • fix: we don’t support mongodb-core v3.1.10+ {pull}792[#792]

2.1.0 - 2019/1/15

Features
  • feat(error): include sampled flag on errors {pull}767[#767]

  • feat(span): add tags to spans {pull}757[#757]

Bug fixes
  • fix(tedious): don’t fail on newest tedious v4.1.3 {pull}775[#775]

  • fix(graphql): fix span name for unknown queries {pull}756[#756]

2.0.6 - 2018/12/18

Bug fixes
  • fix(graphql): don’t throw on invalid query {pull}747[#747]

  • fix(koa-router): support more complex routes {pull}749[#749]

2.0.5 - 2018/12/12

Bug fixes
  • fix: don’t create spans for APM Server requests {pull}735[#735]

2.0.4 - 2018/12/7

  • chore: update engines field in package.json {pull}727[#727]

  • chore(package): bump random-poly-fill to ^1.0.1 {pull}726[#726]

2.0.3 - 2018/12/7

Bug fixes
  • fix(restify): support an array of handlers {pull}709[#709]

  • fix: don’t throw on older versions of Node.js 6 {pull}711[#711]

2.0.2 - 2018/12/4

Bug fixes
  • fix: use randomFillSync polyfill on Node.js <6.13.0 {pull}702[#702]

  • fix(hapi): ignore internal events channel {pull}700[#700]

2.0.1 - 2018/11/26

Bug fixes
  • fix: log APM Server API errors correctly {pull}692[#692]

2.0.0 - 2018/11/14

Breaking changes
  • chore: remove support for Node.js 4 and 9

  • chore: remove deprecated buildSpan function {pull}642[#642]

  • feat: support APM Server intake API version 2 {pull}465[#465]

  • feat: improved filtering function API {pull}579[#579]

  • feat: replace double-quotes with underscores in tag names {pull}666[#666]

  • feat(config): change config order {pull}604[#604]

  • feat(config): support time suffixes {pull}602[#602]

  • feat(config): stricter boolean parsing {pull}613[#613]

Features
  • feat: add support for Distributed Tracing {pull}538[#538]

  • feat(transaction): add transaction.ensureParentId function {pull}661[#661]

  • feat(config): support byte suffixes {pull}601[#601]

  • feat(transaction): restructure span_count and include total {pull}553[#553]

  • perf: improve Async Hooks implementation {pull}679[#679]

Node.js Agent version 1.x

1.14.3 - 2018/11/13

  • fix(async_hooks): more reliable cleanup {pull}674[#674]

1.14.2 - 2018/11/10

  • fix: prevent memory leak due to potential reference cycle {pull}667[#667]

1.14.1 - 2018/11/8

  • fix: promise.then() resolve point {pull}663[#663]

1.14.0 - 2018/11/6

  • feat(agent): return uuid in captureError callback {pull}636[#636]

  • feat(apollo-server-express): set custom GraphQL transaction names {pull}648[#648]

  • feat(finalhandler): improve capturing of errors in Express {pull}629[#629]

  • fix(http): bind writeHead to transaction {pull}637[#637]

  • fix(shimmer): safely handle property descriptors {pull}634[#634]

1.13.0 - 2018/10/19

  • feat(ioredis): add support for ioredis version 4.x {pull}516[#516]

  • fix(ws): allow disabling WebSocket instrumentation {pull}599[#599]

  • fix: allow flushInterval to be set from env {pull}568[#568]

  • fix: default transactionMaxSpans to 500 {pull}567[#567]

1.12.0 - 2018/8/31

  • feat(restify): add Restify instrumentation {pull}517[#517]

  • feat(config): default serviceName to package name {pull}508[#508]

  • fix: always call agent.flush() callback {pull}537[#537]

1.11.0 - 2018/8/15

  • feat(filters): filter set-cookie headers {pull}485[#485]

  • fix(express): cannot create property symbol {pull}510[#510]

1.10.2 - 2018/8/8

  • fix: ensure logger config can update {pull}503[#503]

  • perf: improve request body parsing speed {pull}492[#492]

1.10.1 - 2018/7/31

  • fix(graphql): handle execute args object {pull}484[#484]

1.10.0 - 2018/7/30

  • feat(cassandra): instrument Cassandra queries {pull}437[#437]

  • feat(mssql): instrument SQL Server queries {pull}444[#444]

1.9.0 - 2018/7/25

  • fix(parsers): use basic-auth rather than req.auth {pull}475[#475]

  • feat(agent): add currentTransaction getter {pull}462[#462]

  • feat: add support for ws 6.x {pull}464[#464]

1.8.3 - 2018/7/11

  • perf: don’t patch newer versions of mimic-response {pull}442[#442]

1.8.2 - 2018/7/4

  • fix: ensure correct streaming when using mimic-response {pull}429[#429]

1.8.1 - 2018/6/27

  • fix: improve ability to run in an environment with muliple APM vendors {pull}417[#417]

1.8.0 - 2018/6/23

  • feat: truncate very long error messages {pull}413[#413]

  • fix: be unicode aware when truncating body {pull}412[#412]

1.7.1 - 2018/6/20

  • fix(express-queue): retain continuity through express-queue {pull}396[#396]

1.7.0 - 2018/6/18

  • feat(mysql): support mysql2 module {pull}298[#298]

  • feat(graphql): add support for the upcoming GraphQL v14.x {pull}399[#399]

  • feat(config): add option to disable certain instrumentations {pull}353[#353]

  • feat(http2): instrument client requests {pull}326[#326]

  • fix: get remoteAddress before HTTP request close event {pull}384[#384]

  • fix: improve capture of spans when EventEmitter is in use {pull}371[#371]

1.6.0 - 2018/5/28

  • feat(http2): instrument incoming http2 requests {pull}205[#205]

  • fix(agent): allow agent.endTransaction() to set result {pull}350[#350]

1.5.4 - 2018/5/15

  • chore: allow Node.js 10 in package.json engines field {pull}345[#345]

1.5.3 - 2018/5/14

  • fix: guard against non string err.message

1.5.2 - 2018/5/11

  • fix(express): string errors should not be reported

1.5.1 - 2018/5/10

  • fix: don’t throw if span callsites can’t be collected

1.5.0 - 2018/5/9

  • feat: add agent.addTags() method {pull}313[#313]

  • feat: add agent.isStarted() method {pull}311[#311]

  • feat: allow calling transaction.end() with transaction result {pull}328[#328]

  • fix: encode spans even if their stack trace can’t be captured {pull}321[#321]

  • fix(config): restore custom logger feature {pull}299[#299]

  • fix(doc): lambda getting started had old argument {pull}296[#296]

1.4.0 - 2018/4/9

  • feat(lambda): implement manual lambda instrumentation {pull}234[#234]

1.3.0 - 2018/3/22

  • feat(request): include ppid {pull}286[#286]

1.2.1 - 2018/3/15

  • fix(span): Do not pass stack frames into promises (memory leak fix) {pull}269[#269]

1.2.0 - 2018/3/13

  • feat(config): add serverTimeout {pull}238[#238]

  • fix(config): set default maxQueueSize to 100 {pull}270[#270]

  • feat(ws): add support for ws v5 {pull}267[#267]

1.1.1 - 2018/3/4

  • fix(mongodb): don’t throw if span cannot be built {pull}265[#265]

1.1.0 - 2018/2/28

  • feat: add agent.startSpan() function {pull}262[#262]

  • feat(debug): output more debug info on start {pull}254[#254]

1.0.3 - 2018/2/14

  • fix: ensure context.url.full property is truncated if too long {pull}242[#242]

1.0.2 - 2018/2/13

  • fix(express): prevent invalid errors from crashing {pull}240[#240]

1.0.1 - 2018/2/9

  • fix: don’t add req/res to unsampled transactions {pull}236[#236]

1.0.0 - 2018/2/6

  • feat(instrumentation): support sampling {pull}154[#154]

  • feat(transaction): add transactionMaxSpans config option {pull}170[#170]

  • feat(errors): add captureError call location stack trace {pull}181[#181]

  • feat: allow setting of framework name and version {pull}228[#228]

  • feat(protcol): add url.full to intake API payload {pull}166[#166]

  • refactor(config): replace logBody with captureBody {pull}214[#214]

  • refactor(config): unify config options with python {pull}213[#213]

  • fix: don’t collect source code for in-app span frames by default {pull}229[#229]

  • fix(protocol): report dropped span counts in intake API payload {pull}172[#172]

  • refactor(protocol): always include handled flag in intake API payload {pull}191[#191]

  • refactor(protocol): move process fields to own namespace in intake API payload {pull}155[#155]

  • refactor(protocol): rename uncaught to handled in intake API payload {pull}140[#140]

  • refactor(protocol): rename in_app to library_frame in intake API payload {pull}96[#96]

  • refactor: rename app to service {pull}93[#93]

  • refactor: rename trace to span {pull}92[#92]

Node.js Agent version 0.x

0.12.0 - 2018/1/24

  • feat(*): control amount of source context lines collected using new config options {pull}196[#196]

  • feat(agent): add public flush function to force flush of transaction queue: agent.flush([callback]) {pull}187[#187]

  • feat(mongodb): add support for mongodb-core 3.x {pull}190[#190]

  • refactor(config): update default flushInterval to 10 seconds (lower memory usage) {pull}186[#186]

  • chore(*): drop support for Node.js 5 and 7 {pull}169[#169]

  • refactor(instrumentation): encode transactions as they are added to the queue (lower memory usage) {pull}184[#184]

0.11.0 - 2018/1/11

  • feat(*): Set default stack trace limit to 50 frames {pull}171[#171]

  • feat(ws): add support for [email protected] {pull}164[#164]

  • feat(errors): associate errors with active transaction

0.10.0 - 2018/1/3

  • feat(express): auto-track errors (BREAKING CHANGE: removed express middleware) {pull}127[#127]

  • feat(hapi): add hapi 17 support {pull}146[#146]

  • fix(*): fix Node.js 8 support using async_hooks {pull}77[#77]

  • fix(graphql): support sync execute {pull}139[#139]

  • refactor(agent): make all config properties private (BREAKING CHANGE) {pull}107[#107]

0.9.0 - 2017/12/15

  • feat(conf): allow serverUrl to contain a sub-path {pull}116[#116]

  • refactor(*): better format of error messages from the APM Server {pull}108[#108]

0.8.1 - 2017/12/13

  • docs(*): we’re now in beta! {pull}103[#103]

0.8.0 - 2017/12/13

  • feat(handlebars): instrument handlebars {pull}98[#98]

0.7.0 - 2017/12/6

  • feat(parser): add sourceContext config option to control if code snippets are sent to the APM Server {pull}87[#87]

  • fix(*): move https-pem to list of devDependencies

0.6.0 - 2017/11/17

  • feat(queue): add maxQueueSize config option {pull}56[#56]

0.5.0 - 2017/11/17

  • refactor(*): drop support for Node.js <4 {pull}65[#65]

  • refactor(*): rename module to elastic-apm-node {pull}71[#71]

  • feat(queue): add fuzziness to flushInterval {pull}63[#63]

0.4.0 - 2017/11/15

  • fix(https): instrument https.request in Node.js v9

  • refactor(http): log HTTP results in groups of 100 {pull}68[#68]

  • fix(api): add language to APM Server requests {pull}64[#64]

  • refactor(trans): set default transaction.result to success {pull}67[#67]

  • refactor(config): rename timeout config options {pull}59[#59]

0.3.1 - 2017/10/3

  • fix(parsers): don’t log context.request.url.search as null {pull}48[#48]

  • fix(parsers): separate hostname and port when parsing Host header {pull}47[#47]

0.3.0 - 2017/9/20

  • fix(instrumentation): don’t sample transactions {pull}40[#40]

  • feat(graphql): include GraphQL operation name in trace and transaction names {pull}27[#27]

  • feat(tls): add validateServerCert config option {pull}32[#32]

  • feat(parser): support http requests with full URI’s {pull}26[#26]

  • refactor(*): remove appGitRef config option

  • fix(instrumentation): fix setting of custom flushInterval

  • feat(elasticsearch): add simple Elasticsearch instrumentation

  • fix(*): don’t start agent if appName is invalid

0.2.0 - 2017/8/28

  • refactor(*): support new default port 8200 in APM Server

  • refactor(*): support new context.response status code format

0.1.1 - 2017/8/17

  • fix(instrumentation): don’t fail when sending transactions to APM Server

0.1.0 - 2017/8/17

  • Initial release