Skip to content

Releases: newrelic/newrelic-java-agent

Version 8.25.0

11 Nov 02:44
25046bc

Choose a tag to compare

What's Changed

  • Adds Java 25 Support by @deleonenriqueta in 2512
  • Adds support for Logback-1.5.20 by @jtduffy in 2535
  • Introduces a config option to disable the execution of the call and exec SQL parser regular expressions by @jtduffy in 2490
  • Adds support for Kotlin Coroutines v1.4+ by @dhilpipre in 2454
  • Adds support for Kotlin Coroutines Suspend Functions generated outside of Kotlin Coroutines by @dhilpipre in 2456
  • Introduces a preference config for multiple hosts during datastore detection by @jbedell-newrelic in 2508
  • Adds a system property to configure the artifact skip function by @jtduffy in 2509
  • Adds a configuration option allowing Spring Controller transactions to be named using the controller class name and method name by @sharvath-newrelic in 2532
  • Implement SamplerConfig, centralizing all distributed_tracing.sampler configs into the SamplerConfig by @jasonjkeller in 2529
  • Updated kafka-clients-spans-0.11.0.0 producer instrumentation to use modern distributed tracing API’s with W3C Trace Context support by @sharvath-newrelic in 2516

Fixes

  • Fixes parsing of error class names by @sharvath-newrelic in 2497
  • Fixed a potential memory issue caused by excessively large stack traces in error logging by @jtduffy in 2498
  • Clarify logging messages for invalid attributes on custom events and logging events by @sharvath-newrelic in 2501

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
  • netty-3.4
  • Struts v1
  • spring-3.0.0
  • thrift-0.8
  • solr-4.0.0
  • solr-5.0.0
  • jdbc-inet-merlia
  • jdbc-inet-oranxo
  • grails-1.3
  • rabbit-amqp-1.7.2
  • rabbit-amqp-2.4.1
  • rabbit-amqp-2.5.0
  • rabbit-amqp-2.7.0
  • glassfish-3
  • hibernate-3.3
  • hibernate-3.5
  • jdbc-jtds

New Contributors

Full Changelog: v8.24.0...v8.25.0

Version 8.24.0

03 Sep 19:16
0d8da28

Choose a tag to compare

What's Changed

Full Changelog: v8.23.0...v8.24.0

Version 8.23.0

12 Aug 15:36
3361c19

Choose a tag to compare

New features and improvements

  • Update to support v24 of graphql by @jtduffy in 2425
  • Add lettuce 6.5 instrumentation by @kanderson250 in 2430
  • Bump commons-lang version to 3.18.0 by @jtduffy in 2421
  • Add lettuce dbName to datastore params where available by @kanderson250 in 2423
  • Add an environment variable to skip implementing certain applications. The environment variable name is NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS. The value of it is a comma separated list of main classes, executable jar files or Java based tools/apps that the agent should NOT instrument (e.g. NEW_RELIC_STARTUP_JAVA_ARTIFACT_SKIPS=keytool,myapp.jar,IgnoreThisClass) by @jtduffy in 2433

Fixes

  • Fix a bug where SQS messages with 8 attributes are not sent to AWS. SQS messages need less then 8 attributes to pass distributed trace headers by @obenkenobi in 2422
  • Trim the "Subscriptions" bit off the end of the topic name in azure service bus client by @jbedell-newrelic in 2440
  • Fix AutoConfiguredOpenTelemetrySdk config by @jasonjkeller in 2451

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
  • netty-3.4
  • Struts v1

New Contributors

Full Changelog: v8.22.0...v8.23.0

Version 8.22.0

08 Jul 14:37
b5c9000

Choose a tag to compare

New features and improvements

Fixes

  • Relocate IntelliJ annotations library by @meiao in 2383
  • Support server side sampling_target configuration by @jtduffy in 2386

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
  • netty-3.4
  • Struts v1

Full Changelog: v8.21.0...v8.22.0

Version 8.21.0

28 May 18:49
4da1fd0

Choose a tag to compare

New features and improvements

  • Enhances visibility into Reactor Mono.flatMap calls by @deleonenriqueta in #2308
  • Adds new instrumentation for Spring-Kafka and distributed tracing when using the core Kafka client library by @obenkenobi in #2312
  • Adds KafkaConsumerConfig event support for Kafka 3.7+ by @nrlkirby in #2358

Fixes

  • Fixes the distributed_tracing.sampler config by @jbedell-newrelic in #2330

  • Fixes an Illegal Access Error that can occur when using Scala 2.12 and JDK 11. In cases where Scala 2.12 is not detectable by the agent (we check the system classloader for this - notably, sbt will load Scala classes into custom Scala loaders), there is also a feature flag to manually enable the fix via system property -Dnewrelic.config.class_transformer.illegal_access_fix=true by @kanderson250 in #2334

  • Fix netty 'Unknown' transactions 2274 2355

    • This fix moves previous netty instrumentation changes behind a feature flag, which provides additional visibility in some cases involving HTTP2 transactions. To reenable this granularity (at the possible cost of seeing ‘Unknown’ transactions), use the config setting:
      netty:
        http2:
          frame_read_listener:
            start_transaction: true
    • 8.20 has a logic error in the agent config so the fix is only official in agent version 8.21 and up.
  • Adds a restriction on when to add distributed trace headers for SQS messages. This is based on how large the contents of a message is in bytes and the and the size of attributes. Messages with size greater than 251 KB and/or with 9 or more attributes are excluded from getting distributed trace headers added by @obenkenobi in #2353

  • Allows the org.crac JAR to be shadowed to prevent conflicts with customer environments. by @jbedell-newrelic in #2344

  • Backports changes made in PR #1927 to prevent NullPointerExceptions to older versions of the vertx-core instrumentation by @jgoulard in #2327

  • Prevents excessive transaction segments from being created by HttpUrlConnection method calls (e.g. getInputStream) when they are not associated with an external call. This behavior can be controlled by the following config options: NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_HTTPURLCONNECTION_VERBOSE=false, sys prop -Dnewrelic.config.class_transformer.com.newrelic.instrumentation.httpurlconnection.verbose=false, or equivalent stanza in newrelic.yml. Default setting is true (i.e. non-external getInputStream and other response handler methods will be reported as before). by @kanderson250 in #2365

Security

  • Upgrades the com.newrelic.agent.java:infinite-tracing-protobuf for better security with infinite tracing by @jtduffy in #2339
  • Replaces snakeyaml with com.konloch:safeyaml to address a security vulnerability by @jtduffy in #2333

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
  • netty-3.4
  • Struts v1

IAST

CSEC Version Update to 1.7.0 by @lovesh-ap in #2348
Changelog: https://github.com/newrelic/csec-java-agent/releases/tag/1.7.0

Full Changelog: v8.20.0...v8.21.0

Version 8.20.0

15 Apr 18:34
dec5862

Choose a tag to compare

New features and improvements

  • Support for CRaC 2250

  • Support for JDK24 2284

  • Add sampling options when an inbound traceparent exists 2279

    • These options define how the agent should handle sampling of spans, depending on sampling decisions that were made for their parent span by an upstream entity. The configuration options remote_parent_sampled and remote_parent_not_sampled specify what to do in the case the parent span was sampled or not sampled, respectively. See the documentation for full configuration details.
  • Support for Undertow as a stand-alone module 2269

    • This instrumentation is disabled by default to avoid conflicts with existing Wildfly instrumentation. To enable this instrumentation for stand-alone Undertow server apps, use the configuration setting:
     class_transformer:
       com.newrelic.instrumentation.undertow-server-1.1.0:
         enabled: true
  • Support for Couchbase Client 2203

Fixes

  • Fix netty 'Unknown' transactions 2274

    • This fix moves previous netty instrumentation changes behind a feature flag, which provides additional visibility in some cases involving HTTP2 transactions. To reenable this granularity (at the possible cost of seeing ‘Unknown’ transactions), use the config setting:
      netty:
        http2:
          frame_read_listener:
            start_transaction: true
  • Refactor AWS docker id fetch to use 5s timeout 2275

  • Feature flag to apply Kotlin ArrayIndexOutOfBoundsException fix to all methods 2307

    • This fix addresses errors that may be seen when running the Java Agent in an environment where Kotlin suspends functions are used. To use this fix, set the system property -Dnewrelic.config.class_transformer.clear_return_stacks=true
  • Prevent cache lock for long DB statement parsing 2294

  • Add config to specify whether java.sql is loaded by platform classloader 2267

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
  • netty-3.4
  • Struts v1

New Contributors

Full Changelog: v8.19.0...v8.20.0

Version 8.19.0

10 Mar 21:12
875b6e3

Choose a tag to compare

New features and improvements

Fixes

IAST

New Contributors

Full Changelog: v8.18.0...v8.19.0

Version 8.18.0

30 Jan 14:51
d492642

Choose a tag to compare

New features and improvements

Fixes

  • 2187 Fix edge case in JsonTemplateLayout with certain escaped sequences by @jtduffy
  • 2191 Correct Apdex on transaction event if an error is present by @jtduffy
  • 2192 Don't add null port to hostname attribute on JFR events by @jasonjkeller
  • 2197 Fix memory issue with httpclient-5.0 instrumentation by @jasonjkeller

New Contributors

Full Changelog: v8.17.0...v8.18.0

Version 8.17.0

18 Dec 17:08
2180493

Choose a tag to compare

New features and improvements

  • Add support for jdbc-mariadb 3.0.0 till latest and r2dbc-mariadb 1.1.2 till latest - credit to @dhilpipre - clone of 2142 by @jtduffy in 2146
  • Auto discover AWS account ID in the DynamoDB instrumentation by @meiao in 2148
  • Auto discover AWS account ID in the Lambda sdk instrumentation by @meiao in 2167
  • Support pekko-http on scala 3 for versions 1.0.0 till latest by @kanderson250 in 2163
  • Allow JFR queue size and harvest interval to be configured via agent config by @jtduffy in 2168
    New configs are:
  jfr:
    # The time interval, in seconds, of how often JFR data is sent to New Relic.
    # The default is 10 seconds.
    harvest_interval: 10

    # The size of the queue used to store JFR events. Increasing this can reduce gaps in JFR reported data
    # but can also cause resource issues in the agent or cause data to be dropped if backend pipeline
    # limits are exceeded.
    # See: https://docs.newrelic.com/docs/data-apis/ingest-apis/event-api/introduction-event-api/#limits
    #      https://docs.newrelic.com/docs/data-apis/ingest-apis/metric-api/metric-api-limits-restricted-attributes/
    # Default is 250000
    queue_size: 250000
  • Add AWS Firehose SDK Instrumentation for versions 2.1.0 till latest by @obenkenobi in 2149
  • Implement a new instrumentation module for r2dbc-mysql 1.1.3+ by @jbedell-newrelic in 2169
  • Memory usage reduced for the r2dbc-mssql and m2dbc-mysql modules by @jbedell-newrelic in 2169
  • Log when multiple, different, traceparent headers found on inbound request and only report invalid parent header count supportability metric when that scenario occurs by @jtduffy in 2154
  • Expected NPE in noticeTracer no longer logs full stack trace by @jasonjkeller in 2143

Fixes

IAST

Full Changelog: v8.16.0...v8.17.0

Version 8.16.0

13 Nov 22:44
c78987c

Choose a tag to compare

New features and improvements

  • Obfuscate JVM properties by @kanderson250 in 2114
    The Java agent will now obfuscate values passed to JVM properties. For example: -Dprop=12345 will now be sent as -Dprop=obfuscated. The documentation has information on how to disable obfuscation and how to add exceptions.

  • Cloud API by @meiao in 2081
    The Cloud API allows cloud provider account information to be provided to the agent. This will allow the agent to populate the cloud.resource_id attribute in calls to select cloud services.
    The API documentation has information on how to use it programmatically.
    This information can also be provided using a configuration option.

  • Support distributed tracing for Kafka Stream 3.7.x by @deleonenriqueta in 2095

  • Report if agent was installed via Azure site extension by @jtduffy in 2094

  • Lazy initialization of GUIDs on DefaultTracers by @yuzawa-san in 2088

  • Java HttpClient: Addition of status code to reported externals by @jtduffy in 2089

  • AWS Lambda: populate cloud.resource_id using data from Cloud API by @meiao in 2115

  • Kinesis Data Streams: populate cloud.resource_id by @obenkenobi in 2112

  • DynamoDB: populate cloud.resource_id by @meiao in 2113

Fixes

  • Use recordResponseTimeMetric instead of recordMetric by @Matzz in 2128

  • Use WeakReference HttpUrlConnection instrumentation by @obenkenobi in 2082

  • Fix a bug where Jetty 12 would not properly link distributed traces by @obenkenobi in 2140

  • Update to JFR daemon 1.13.0 by @jasonjkeller in 2129
    This update changes the HTTP client used, which caused problems with some proxies.

IAST

New Contributors

Full Changelog: v8.15.0...v8.16.0