New Features
- Added - getStatusNameto- NameState.- Now web transactions will be named after known status code messages (404, 405, and 501). 
- Added - appendPathoption to MiddlewareSpec.
Improvements
- Broke apart integrationscript test globs.
Fixes
- Fixed bug where agent would stop sending data to New Relic servers when a connectivity issue was encountered.
- The agent will no longer crash the process in the event of unexpected calls to the harvest callback.
Bug fixes
- Refactored config to log warning and disable distributed tracing if enabled in serverless mode, but missing required config setting.
- Serverless mode no longer sets different data collection limits.
- The agent will no longer crash the process in the event of unexpected calls to the harvest callback.
- Updated required config values when using distributed tracing in serverless_modeto only includeaccount_id.
Bug fixes
- The agent will now accurately filter out request parameters while operating under CSP or HSM. - You can find more information about this change in the Security Bulletin. 
Improvements
- Agent now respects attribute type restrictions on trace/segment attributes, as well as error event/trace attributes.
Bug fixes
- Fixes potential for - RangeError: Maximum call stack size exceedederror on Transaction/Trace end.
- Custom events no longer accept attributes with invalid types. - The only attribute types accepted by the backend are - boolean,- string, and- number; any attribute assigned to a custom event outside these types would be dropped on ingest. The agent now filters these attributes out, and logs out a helpful message detailing the issue.
Fixes
- Updated log message for not adding attributes and change the log level to debug.
- Fixed an issue where exclusive time would be improperly calculated in some cases.
New features
- Added productattribute to existing datastore instrumentations.
- Added db.collectionto datastore span event attributes.
Improvements
- trusted_account_key,- account_id, and- primary_application_idmay now be configured via a configuration file while in serverless mode.
- Optimized exclusive time duration calculator.
Previously, the agent would spend a lot of time sorting redundant arrays while calculating the exclusive time for the segments of a trace. This has been refactored into a single postorder traversal over the tree which will calculate the exclusive time for all segments in the subtree rooted at a given segment.
Fixes
- Fixed a bug where data belonging to distributed traces starting in the Node.js agent would be prioritized over data produced from traces starting in other language agents. Previously, the agent would use the same random number for both the transaction priority (used for data sampling) and the distributed tracing trace sampling decision (whether to create DT data for a given transaction). This random number reuse resulted in a bias that caused data from distributed traces started in the Node.js agent to be prioritized above data that belongs to distributed traces started in other language agents. The agent now makes individual rolls for each of these quantities (i.e. the transaction priority and trace sampling decision), eliminating the bias.
- Prevent a split on undefined location under certain conditions in Memcached.
New features
- Added - SNSto message shim library names.
- Added check for - collect_span_eventsin config sent from the server on connect.- Collection of span events can be disabled from the server configuration, but not enabled. 
Improvements
- Refactored - Segment#toJSONto be more readable.
- Added a - try/catchto config initialization to safely handle invalid setting combinations.- When an error is caught the agent is marked as disabled, which ultimately returns a stub API and keeps the process running. 
- String truncation is now done using a binary search over the byte length of the string. - Previously this truncation was done using a linear search for the proper byte length. 
- Optimized segment and span attribute filtering. 
Fixes
- Fixed issue where - shim.createSegment()could result in modifying the parent when opaque.
- Fixed issue where - http-outboundwould modify parent segments when parent is opaque.
- Moved processing of exclusive time attribute out of - toJSONand into- finalizeto only be calculated once.- Previously, serializing a segment would result in calculating and caching exclusive time which could result in issues if serialized prior to ending. 
New features
- Added - span_eventsand- transaction_segmentsattribute destinations.- Span event and segment attributes can now be filtered using the same include/exclude config rules as other types. See agent attribute configuration for more details. 
- Added - metadatafield to connect payload, for collecting- NEW_RELIC_METADATA_-prefixed environment variables.
- Added DynamoDB to datastores. 
- Added - opaqueoption to datastore operation spec.
- Added Kubernetes utilization detection. 
- Upgraded - concat-streamand- readable-streamto next major version.- These modules had previously been held back due to support for Node <6. Since v5.0.0 we dropped that support thus enabling these updates. 
- Added SQS as a supported messaging library name. 
- Enabled tracking of callback via - message-shim.recordConsumewhen no messageHandler provided.
Improvements
- Replaced makerules with npm scripts.
Bug fixes
- The agent will now consistently harvest in all response cases when in serverless mode. - Previously, the agent's harvest was in a race with process suspension in the event of an uncaught exception, or responding without calling a callback. A synchronous harvesting process is now used to circumvent this racing issue. 
- Fixed issue with socket connection errors causing the agent to stop attempting to connect at startup. 
- Fixed opaque segment functionality for - message-shim.recordProduce.
- Fixed opaque segment functionality for - message-shim.recordConsume.
Improvements
- Removed installation of Oracle container test scripts. 
- Replaced explicit - config.high_security === truechecks with general truthiness checks.- The agent will now treat any truthy value in the - high_securityconfig setting as if it is enabled.
Bug fixes
- Fixed bug where agent would stop sending data to New Relic servers when a connectivity issue was encountered.
- Fixed unit test with incorrect usage of cross application tracing.