New features and improvements
-
Add support for Jetty 12, including Jetty’s implementation of the Jakarta EE 8, 9, and 10 specs. 1621
-
Add support for Vert.x versions 4.0.0 through 4.4.x 1588
-
Add instrumentation for graphql-java 21 1454
-
Instrument r2dbc-postgresql 0.9.2 till latest 1413
-
Reintroduce the legacy HTTP Attributes that were removed in v8.0.0 to support customers with alerts and dashboards that require them 1671
The attributes are:httpResponseCode
httpResponseMessage
response.status
response.statusMessage
Attribute reporting is configurable via the following means.
YAML:
attributes: http_attribute_mode: both
System property:
-Dnewrelic.config.attributes.http_attribute_mode=both
Environment variable:
NEW_RELIC_ATTRIBUTES_HTTP_ATTRIBUTE=both
The configuration options are:
standard
: The agent will send new standard attributes. This configuration is recommended but requires that any alerts or dashboards using attributes be updated to use these new attributes. This setting will reduce the amount of ingest used for attribute reporting.legacy
: The agent will send the legacy attributes referenced above. Customers with alerts or dashboard requiring these attributes can continue to be used as-is. This setting will reduce the amount of ingest used for attribute reporting.both
: This is the default configuration, the agent will send BOTH legacy AND standard HTTP attributes. This configuration was intended to support customers that are unable to modify their alerts or dashboards but this configuration will increase data ingest.
-
Add an interface for our error API. Our error API can now be called via the code
NewRelic.getAgent().getErrorApi()
1577 -
Add log4j2 JsonLayout support and support log4j2 till latest. 1545
-
Add httpstatus in the external segment for Spring Webclient 1610
-
Enable slow transaction detection by default and bump the threshold to 10 minutes 1629
-
Add support for string formatting with JBoss Logging. 1650
-
Add logic to remove specific classes from being excluded from being weaved if the IAST security feature is enabled. 1453
The affected classes belong in the following formats:
^java/security/.*
^javax/crypto/.*
These are crypto classes which can cause class circularity errors if they get too far along in the class transformer.^net/sf/saxon.*
If you wish to re-include these excluded rules, you can do so via the following means.
YAML:
class_transformer: excludes: ^javax/crypto/.*,^java/security/.*,^net/sf/saxon.*
System property:
-Dnewrelic.config.class_transformer.excludes=^javax/crypto/.*,^java/security/.*,^net/sf/saxon.*
Environment variable:
NEW_RELIC_CLASS_TRANSFORMER_EXCLUDES=^javax/crypto/.*,^java/security/.*,^net/sf/saxon.*
-
Prevent license_key value from being written to the agent logs when using debug and/or audit_mode logging 1653
IAST
- The IAST feature now also supports Async HTTP client version 2 and above 142
- Added support for Sun Net HTTP Server 142
- JSON version bump to 1.1.1 142
- Add critical error logging via LogMessage event 142
Fixes
-
Fix transaction naming in Spring controllers with a CGLIB proxy. Transactions now use the actual class name as opposed to the proxied class name. 1574
-
Fix a
NullPointerException
caused by ServletContext in servlet instrumentation modules. 1636 -
Fix a memory leak caused by Lettuce instrumentation. Duplicate code for transaction linking has been removed from the Lettuce instrumentation and is handled by netty-reactor instead. 1608
-
Fix a bug where invalidating a license key causes a memory leak. Reconnection tasks are now capped in the event of a
LicenseException
. 1606 -
Fix a
NullPointerException
caused by RPMServiceManager 1604 -
Add a workaround for a memory leak that may occur in rare scenarios with instrumentation using the legacy async API in the Java Agent (which async servlets and Jetty Continuations use). 1555
The option can be configured via the following means:
Agent config file (this will update dynamically if the config file is changed)
common: &default_settings legacy_async_api_skip_suspend: true
System Property
-Dnewrelic.config.legacy_async_api_skip_suspend=true
Environment Variable
NEW_RELIC_LEGACY_ASYNC_API_SKIP_SUSPEND=true
IAST
-
DynamoDB v2 issue: missing attribute values for conditionCheck method in case of transactWriteItems operation on DynamoDB 142
-
Fixed an Insecure cookie attack vulnerability. 142
-
Never print LicenseKey 142
Deprecations
The following instrumentation modules are deprecated and will be removed in the next major release:
aws-wrap-0.7.0
java.completable-future-jdk8
play-2.3
spring-3.0.0
netty-3.4
Struts v1
Full Changelog: v8.7.0...v8.8.0