New features
Added an option for using the
finallymethod on promises for instrumentation.The promise instrumentation would use
Promise#finallyif available. This change is in response to Node v10 promises callingtheninside theirfinallymethod, which caused infinite recursion in the agent's promise instrumentation.Added seen/sent/dropped supportability metrics for all event collections.
Improvements
Refactored harvest cycle into separate class.
This refactoring eases managing harvested data and re-merging unharvested values on failure.
No longer download gcc on test suites that do not require it.
Bug fixes
Updated
WebFrameworkShimto handle arrays of routes when wrapping middleware mounters.Previously, a transaction that hit a shared middleware (eg,
app.use(['/one', '/two'], ...)) would always be tagged with<unknown>in its name, due to the agent not interpreting arrays of paths. Now transaction names will include all paths for a shared middleware, comma-delimited, followed by the current route ('WebTransaction/Expressjs/GET//one,/two/one').