- feat: add support for Fastify framework (#594)
- feat(lambda): accept parent span in lambda wrapper (#881)
- feat(lambda): support promise form (#871)
- fix: ensure http headers are always recorded as strings (#895)
- fix(metrics): prevent 0ms timers from being created (#872)
- fix(config): apiRequestSize should be 768kb (#848)
- fix(express): ensure correct transaction names (#842)
- fix(metrics): ensure NaN becomes 0, not null (#837)
- feat(metrics): added basic metrics gathering (#731)
- feat: add ability to set custom log message for errors (#824)
- feat: add ability to set custom timestamp for errors (#823)
- feat: add support for custom start/end times (#818)
- fix(parsers): move port fix into parser (#820)
- fix(mongo): support 3.1.10+ (#793)
- feat(config): add captureHeaders config (#788)
- feat(config): add container info options (#766)
- fix: ensure request.url.port is a string on transactions (#814)
- feat(koa): record framework name and version (#810)
- feat(cassandra): support 4.x (#784)
- feat(config): validate serverUrl port (#795)
- feat: add transaction.type to errors (#805)
- fix: filter outgoing http headers with any case (#799)
- fix: we don't support mongodb-core v3.1.10+ (#792)
- feat(error): include sampled flag on errors (#767)
- feat(span): add tags to spans (#757)
- fix(tedious): don't fail on newest tedious v4.1.3 (#775)
- fix(graphql): fix span name for unknown queries (#756)
- fix(graphql): don't throw on invalid query (#747)
- fix(koa-router): support more complex routes (#749)
- fix: don't create spans for APM Server requests (#735)
- chore: update engines field in package.json (#727)
- chore(package): bump random-poly-fill to ^1.0.1 (#726)
- fix(restify): support an array of handlers (#709)
- fix: don't throw on older versions of Node.js 6 (#711)
- fix: use randomFillSync polyfill on Node.js <6.13.0 (#702)
- fix(hapi): ignore internal events channel (#700)
- fix: log APM Server API errors correctly (#692)
- Breaking changes:
- chore: remove support for Node.js 4 and 9
- chore: remove deprecated buildSpan function (#642)
- feat: support APM Server intake API version 2 (#465)
- feat: improved filtering function API (#579)
- feat: replace double-quotes with underscores in tag names (#666)
- feat(config): change config order (#604)
- feat(config): support time suffixes (#602)
- feat(config): stricter boolean parsing (#613)
- feat: add support for Distributed Tracing (#538)
- feat(transaction): add transaction.ensureParentId function (#661)
- feat(config): support byte suffixes (#601)
- feat(transaction): restructure span_count and include total (#553)
- perf: improve Async Hooks implementation (#679)
- fix(async_hooks): more reliable cleanup (#674)
- fix: prevent memory leak due to potential reference cycle (#667)
- fix: promise.then() resolve point (#663)
- feat(agent): return uuid in captureError callback (#636)
- feat(apollo-server-express): set custom GraphQL transaction names (#648)
- feat(finalhandler): improve capturing of errors in Express (#629)
- fix(http): bind writeHead to transaction (#637)
- fix(shimmer): safely handle property descriptors (#634)
- feat(ioredis): add support for ioredis version 4.x (#516)
- fix(ws): allow disabling WebSocket instrumentation (#599)
- fix: allow flushInterval to be set from env (#568)
- fix: default transactionMaxSpans to 500 (#567)
- feat(restify): add Restify instrumentation (#517)
- feat(config): default serviceName to package name (#508)
- fix: always call agent.flush() callback (#537)
- fix(graphql): handle execute args object (#484)
- feat(cassandra): instrument Cassandra queries (#437)
- feat(mssql): instrument SQL Server queries (#444)
- fix(parsers): use basic-auth rather than req.auth (#475)
- feat(agent): add currentTransaction getter (#462)
- feat: add support for ws 6.x (#464)
- perf: don't patch newer versions of mimic-response (#442)
- fix: ensure correct streaming when using mimic-response (#429)
- fix: improve ability to run in an environment with muliple APM vendors (#417) (via require-in-the-middle#11)
- fix(express-queue): retain continuity through express-queue (#396)
- feat(mysql): support mysql2 module (#298)
- feat(graphql): add support for the upcoming GraphQL v14.x (#399)
- feat(config): add option to disable certain instrumentations (#353)
- feat(http2): instrument client requests (#326)
- fix: get remoteAddress before HTTP request close event (#384)
- fix: improve capture of spans when EventEmitter is in use (#371)
- feat(http2): instrument incoming http2 requests (#205)
- fix(agent): allow agent.endTransaction() to set result (#350)
- chore: allow Node.js 10 in package.json engines field (#345)
- fix: guard against non string err.message
- fix(express): string errors should not be reported
- fix: don't throw if span callsites can't be collected
- feat: add agent.addTags() method (#313)
- feat: add agent.isStarted() method (#311)
- feat: allow calling transaction.end() with transaction result (#328)
- fix: encode spans even if their stack trace can't be captured (#321)
- fix(config): restore custom logger feature (#299)
- fix(doc): lambda getting started had old argument (#296)
- feat(lambda): implement manual lambda instrumentation (#234)
- feat(request): include ppid (#286)
- fix(span): Do not pass stack frames into promises (memory leak fix) (#269)
- feat(config): add serverTimeout (#238)
- fix(config): set default maxQueueSize to 100 (#270)
- feat(ws): add support for ws v5 (#267)
- fix(mongodb): don't throw if span cannot be built (#265)
- fix: ensure context.url.full property is truncated if too long (#242)
- fix(express): prevent invalid errors from crashing (#240)
- fix: don't add req/res to unsampled transactions (#236)
- feat(instrumentation): support sampling (#154)
- feat(transaction): add
transactionMaxSpans
config option (#170) - feat(errors): add captureError call location stack trace (#181)
- feat: allow setting of framework name and version (#228)
- feat(protcol): add
url.full
to intake API payload (#166) - refactor(config): replace
logBody
withcaptureBody
(#214) - refactor(config): unify config options with python (#213)
- fix: don't collect source code for in-app span frames by default (#229)
- fix(protocol): report dropped span counts in intake API payload (#172)
- refactor(protocol): always include handled flag in intake API payload (#191)
- refactor(protocol): move process fields to own namespace in intake API payload (#155)
- refactor(protocol): rename
uncaught
tohandled
in intake API payload (#140) - refactor(protocol): rename
in_app
tolibrary_frame
in intake API payload (#96) - refactor: rename app to service (#93)
- refactor: rename trace to span (#92)
- feat(*): control amount of source context lines collected using new config options (#196)
- feat(agent): add public flush function to force flush of transaction queue: agent.flush([callback]) (#187)
- feat(mongodb): add support for mongodb-core 3.x (#190)
- refactor(config): update default flushInterval to 10 seconds (lower memory usage) (#186)
- chore(*): drop support for Node.js 5 and 7 (#169)
- refactor(instrumentation): encode transactions as they are added to the queue (lower memory usage) (#184)
- feat(*): Set default stack trace limit to 50 frames (#171)
- feat(ws): add support for [email protected] (#164)
- feat(errors): associate errors with active transaction
- feat(express): auto-track errors (BREAKING CHANGE: removed express middleware) (#127)
- feat(hapi): add hapi 17 support (#146)
- fix(*): fix Node.js 8 support using async_hooks (#77)
- fix(graphql): support sync execute (#139)
- refactor(agent): make all config properties private (BREAKING CHANGE) (#107)
- feat(conf): allow serverUrl to contain a sub-path (#116)
- refactor(*): better format of error messages from the APM Server (#108)
- docs(*): we're now in beta! (#103)
- feat(handlebars): instrument handlebars (#98)
- feat(parser): add sourceContext config option to control if code snippets are sent to the APM Server (#87)
- fix(*): move https-pem to list of devDependencies
- feat(queue): add maxQueueSize config option (#56)
- refactor(*): drop support for Node.js <4 (#65)
- refactor(*): rename module to elastic-apm-node (#71)
- feat(queue): add fuzziness to flushInterval (#63)
- fix(https): instrument https.request in Node.js v9
- refactor(http): log HTTP results in groups of 100 (#68)
- fix(api): add language to APM Server requests (#64)
- refactor(trans): set default transaction.result to success (#67)
- refactor(config): rename timeout config options (#59)
- fix(parsers): don't log context.request.url.search as null (#48)
- fix(parsers): separate hostname and port when parsing Host header (#47)
- fix(instrumentation): don't sample transactions (#40)
- feat(graphql): include GraphQL operation name in trace and transaction names (#27)
- feat(tls): add validateServerCert config option (#32)
- feat(parser): support http requests with full URI's (#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
- refactor(*): support new default port 8200 in APM Server
- refactor(*): support new context.response status code format
- fix(instrumentation): don't fail when sending transactions to APM Server
- Initial release