newrelic / newrelic-java-agent

The New Relic Java agent
Apache License 2.0
202 stars 143 forks source link

Add HTTP/2 Support For Netty 4.1.16.Final + #1815

Closed jasonjkeller closed 6 months ago

jasonjkeller commented 7 months ago

Resolves https://github.com/newrelic/newrelic-java-agent/issues/1789

Adds a new netty-4.1.16 instrumentation module and caps the range of versions supported by the old netty-4.0.8 module.

In addition to supporting HTTP/1, this new instrumentation module adds support for HTTP/2 starting with Netty version io.netty:netty-all:4.1.16.Final up to the latest 4.1.xversions (at the time this instrumentation was added the most recent version of Netty wasio.netty:netty-all:4.1.107.Final).

Note: There are a small number of old Netty versions (4.1.0.Beta4 - 4.1.15.Final) that technically provide HTTP/2 functionality but will be instrumented by the older netty-4.0.8 module and thus won't have HTTP/2 support from us. This decision was made because those old Netty versions, which were all published from 2015-2017, have an extremely unstable HTTP/2 API which was frequently being refactored, making it difficult to instrument. Chances are extremely low that anyone would actually be using HTTP/2 with any of these early Netty versions.

AIT changes in the following PR will resolve the test failures: https://github.com/newrelic/java-agent-integration-tests/pull/255

jasonjkeller commented 7 months ago

Related to https://github.com/newrelic/newrelic-java-agent/issues/1799