---
title: Extension and additional instrumentation modules
source: https://docs.newrelic.com/docs/apm/agents/java-agent/instrumentation/extension-additional-instrumentation-modules
---

The Java agent is a fully-featured library that automatically collects data from many popular servers, frameworks, libraries, and datastores (for a full list, see [Compatibility and requirements](https://docs.newrelic.com/docs/agents/java-agent/getting-started/compatibility-requirements-java-agent)). It also has a significant feature set. However, there are always additional requests for functionality and instrumentation of new libraries. The Java agent provides **extension modules** for this purpose.

Extension modules fall into three general categories:

-   [Incubator instrumentation modules](#incubator-modules-list): Experimental new support to collect data from specific libraries
-   [Archived instrumentation modules](#archived-modules-list): Instrumentation for libraries that the original company or author no longer maintains or updates.
-   [Feature extension modules](#feature-extension-modules): Code that adds new behavior to the agent, independent of any specific library.

If your library isn't covered by the automatic instrumentation or by an instrumentation module, you can still collect data with [custom instrumentation](https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/java-custom-instrumentation).

> #### 💡 TIP
>
> If you have feedback, questions, or problems with this instrumentation, create a post in [New Relic's Support Forum](https://support.newrelic.com/s/hubtopic/Topic__c/Default?c__categories=%5B%7B%22icon%22%3A%22standard%3Adefault%22%2C%22id%22%3A%22a6c8W000000EesiQAC%22%2C%22sObjectType%22%3A%22Category__c%22%2C%22title%22%3A%22Java%20Agent%22%2C%22titleFormatted%22%3A%22Java%20Agent%22%7D%5D), and tag your post with `java_incubator`.

## Install extension modules [#install]

We recommend [updating to the latest Java agent version](https://docs.newrelic.com/docs/agents/java-agent/installation/upgrade-java-agent) before installing an extension module. To install an extension module:

1.  Download the appropriate `.jar` file from module lists below.
2.  Locate the directory that contains your `newrelic.jar` and `newrelic.yml` files. In that directory, create a sub-directory named `extensions` (if there is not already one there).
3.  Copy the `.jar` extension module you downloaded into the `extensions` directory.
4.  For Feature extension modules, update your `newrelic.yml` with feature-specific configuration.
5.  Restart your server.
6.  Send some traffic to the server or host that will exercise the feature or instrumentation.

> #### 💡 TIP
>
> Java agent extension modules are subject to the [New Relic Java agent licenses](https://docs.newrelic.com/docs/licenses/license-information/agent-licenses/java-agent-licenses), which are included in each module jar's `LICENSE` file.

## Feature extension modules

Extension modules are additional libraries that add commonly-requested functionality.

To use the an extension module, download it and put it in the [Extensions Directory](https://docs.newrelic.com/docs/agents/java-agent/configuration/java-agent-configuration-config-file#extensions-directory).

**Class Histogram**

| Download link | [Download the module](https://repo1.maven.org/maven2/com/newrelic/agent/extension/class-histogram-extension/) |
| ------------- | ------------------------------------------------------------------------------------------------------------- |

The Class Histogram extension runs [jmap](https://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html) periodically and generates `ClassHistogramRowEvent` and `ClassHistogramStatsEvent` data that [you can query and chart](https://docs.newrelic.com/docs/using-new-relic/data/understand-data/query-new-relic-data). Querying this data can be useful when troubleshooting memory leaks as you can see the values over time.

You configure the Class Histogram extension the same way you configure the Java agent: using environment variables, system properties, or `newrelic.yml`. Here are available properties, with defaults:

````yml
extensions:
  class_histogram:
    enabled: true                    # true is the default if the extension is present
    classes_per_histogram: 50        # 50 is the default, and memory leak issues are usually in the highest 50 classes by bytes
    jmap_path: /your/jdk/bin         # The folder where the jmap binary lives. The default is $JAVA_HOME/bin.
    delay_between_calls_seconds: 60  # Length of the delay between executions to avoid frequent pauses
```

````

## Incubator instrumentation modules [#incubator-modules-list]

Incubator modules are experimental instrumentation, which we may build into the agent's automatic instrumentation in the future.

These are the incubator modules that are currently available:

**Apache Camel 2.12**

| Download link | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/camel-2.12.jar) |
| ------------- | -------------------------------------------------------------------------------------------------- |

This instrumentation module intercepts the following:

````java
org.apache.camel.component.http.CamelServlet.resolve
```

To name the transaction so that web transactions have a finer grained name than the Camel servlet name, it uses this:

```java
org.apache.camel.component.http.HttpConsumer.getPath()
```

To view the bytecode, use this terminal command:

```bash
javap -verbose -cp camel-2.12-FILENAME.jar org.apache.camel.component.http.CamelServlet
```

````

**C3P0 database connection pools**

| Download link      | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/c3p0-0.9.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| Java agent version | 3.12.0 or higher                                                                                 |

This instrumentation module samples C3P0 connection pools and reports busy and idle counts in metrics that start with this:

````
Custom/Database Connection/C3P0/METRIC_NAME
```

You can view the metrics with the [metric explorer](/docs/insights/use-insights-ui/explore-data/metric-explorer-search-chart-metrics-sent-new-relic-agents).

````

**Coda Hale's Metrics 2**

| Download link | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/metrics-2.jar) |
| ------------- | ------------------------------------------------------------------------------------------------- |

This instrumentation module integrates with the `MetricRegistry` and begins sampling the registered metrics every minute. Reported metrics are prefixed with this:

````
Custom/CodaHale/Metrics2/METRIC_NAME
```

You can view the metrics with the [metric explorer](/docs/insights/use-insights-ui/explore-data/metric-explorer-search-chart-metrics-sent-new-relic-agents).

````

**Coda Hale's Metrics 3**

| Download link | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/metrics-3.jar) |
| ------------- | ------------------------------------------------------------------------------------------------- |

This instrumentation module integrates with the `MetricRegistry` and begins sampling the registered metrics every minute. Reported metrics are prefixed with this:

````
Custom/CodaHale/Metrics3/METRIC_NAME
```

You can view the metrics with the [metric explorer](/docs/insights/use-insights-ui/explore-data/metric-explorer-search-chart-metrics-sent-new-relic-agents).

````

**HikariCP 2.3.0 - 2.3.8**

| Download link      | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/hikaricp-2.3.5.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.12.0 or higher                                                                                       |

This instrumentation module samples HikariCP database connection pools and reports busy and idle counts in metrics that start with this:

````
Custom/Database Connection/HikariCP/METRIC_NAME
```

You can view the metrics with the [metric explorer](/docs/insights/use-insights-ui/explore-data/metric-explorer-search-chart-metrics-sent-new-relic-agents).

````

**Ratpack 1.6.0 or higher**

| Download link      | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/ratpack-1.6.0.jar) |
| ------------------ | ----------------------------------------------------------------------------------------------------- |
| Java agent version | 3.29 or higher                                                                                        |

This instrumentation module adds support for async linking of Ratpack's execution primitives. It also monitors handler execution. You must name the transactions manually by using the [Java agent API](https://docs.newrelic.com/docs/agents/java-agent/api-guides/guide-using-java-agent-api).

**Ratpack Http Client 1.4.0 or higher**

| Download link | [Download the module](https://download.newrelic.com/newrelic/java-agent/extensions/ratpack-http-1.4.0.jar) |
| ------------- | ---------------------------------------------------------------------------------------------------------- |

This instrumentation captures Ratpack's HTTP client requests and responses.

## Archived instrumentation modules [#archived-modules-list]

Archived modules are instrumentation for libraries that are no longer maintained by the original company or author. Because the target library isn't being updated, our support for archived modules has designated end dates.

These are the archived modules that are currently available:

**Akka \[2.0]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/akka-2.0/SNAPSHOT/akka-2.0-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.22.1 or higher                                                                                                                                                     |
| Support ends on    | December 2019                                                                                                                                                        |

This module provides link instrumentation between actors that send and receive messages. It also traces messages broadcast by or forwarded to actors. In order to avoid over-instrumentation, this instrumentation does not start transactions. If you would like a given actor call to mark the beginning of a transaction, use the [`@Trace(dispatcher=true)`](https://newrelic.github.io/java-agent-api/javadoc/index.html?com/newrelic/api/agent/Trace.html) annotation, or some other form of [custom instrumentation](https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/java-custom-instrumentation).

**Akka \[2.1]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/akka-2.1/SNAPSHOT/akka-2.1-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.22.1 or higher                                                                                                                                                     |
| Support ends on    | December 2019                                                                                                                                                        |

This module provides link instrumentation between actors that send and receive messages. It also traces messages broadcast by or forwarded to actors. In order to avoid over-instrumentation, this instrumentation does not start transactions. If you would like a given actor call to mark the beginning of a transaction, use the [`@Trace(dispatcher=true)`](https://newrelic.github.io/java-agent-api/javadoc/index.html?com/newrelic/api/agent/Trace.html) annotation, or some other form of [custom instrumentation](https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/java-custom-instrumentation).

**Akka HTTP \[1.0]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/akka-http-1.0/SNAPSHOT/akka-http-1.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.24.1 or higher                                                                                                                                                               |
| Support ends on    | December 2019                                                                                                                                                                  |

This module creates [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) from Akka HTTP calls. It also instruments hand-offs between Akka actors, and calls from Akka to other databases and services.

For calling systems, this instrumentation collects [cross application traces](https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/introduction-cross-application-traces). If you're using a supported Akka version, you can view activity from your Akka HTTP apps from transactions all the way through your actor systems.

**Akka HTTP \[2.0 – 2.4.1]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/akka-http-2.0/SNAPSHOT/akka-http-2.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.24.1 or higher                                                                                                                                                               |
| Support ends on    | December 2019                                                                                                                                                                  |

This module creates [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) from Akka HTTP calls. It also instruments hand-offs between Akka actors, and calls from Akka to other databases and services.

For calling systems, this instrumentation collects [cross application traces](https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/introduction-cross-application-traces). If you're using a supported Akka version, you can view activity from your Akka HTTP apps from transactions all the way through your actor systems.

**Akka HTTP \[2.4.2 – 2.4.4]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/akka-http-2.4.2/SNAPSHOT/akka-http-2.4.2-SNAPSHOT.jar) |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.24.1 or higher                                                                                                                                                                   |
| Support ends on    | December 2019                                                                                                                                                                      |

This module creates [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) from Akka HTTP calls. It also instruments hand-offs between Akka actors, and calls from Akka to other databases and services.

For calling systems, this instrumentation collects [cross application traces](https://docs.newrelic.com/docs/apm/transactions/cross-application-traces/introduction-cross-application-traces). You can use this instrumentation together with our built previously released support for Akka, to view activity from your Akka HTTP apps from transactions all the way through to your actor systems.

**Hystrix \[1.0.2 – 1.1.7]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/hystrix-1.0.2/SNAPSHOT/hystrix-1.0.2-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.23.0 or higher                                                                                                                                                               |
| Support ends on    | December 2019                                                                                                                                                                  |

This module provides timing information related to each Hystrix command. The agent will link chained Hystrix commands into one [transaction](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction).

**Hystrix \[1.2.0 – 1.2.18]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/hystrix-1.2/SNAPSHOT/hystrix-1.2-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.23.0 or higher                                                                                                                                                           |
| Support ends on    | December 2019                                                                                                                                                              |

This module provides timing information related to each Hystrix command. The agent will link chained Hystrix commands into one [transaction](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction).

**Hystrix \[1.3.0 – 1.3.13]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/hystrix-1.3.0/SNAPSHOT/hystrix-1.3.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.23.0 or higher                                                                                                                                                               |
| Support ends on    | December 2019                                                                                                                                                                  |

This module provides timing information related to each Hystrix command. The agent will link chained Hystrix commands into one [transaction](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction).

**Play \[2.0]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/play-2.0/SNAPSHOT/play-2.0-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.24.1 or higher                                                                                                                                                     |
| Support ends on    | December 2019                                                                                                                                                        |

This module creates and names [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) based on your Play controller classes.

**Play \[2.1]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/play-2.1/SNAPSHOT/play-2.1-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.24.1 or higher                                                                                                                                                     |
| Support ends on    | December 2019                                                                                                                                                        |

This module creates and names [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) based on your Play controller classes.

**Play \[2.2]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/play-2.2/SNAPSHOT/play-2.2-SNAPSHOT.jar) |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java agent version | 3.24.1 or higher                                                                                                                                                     |
| Support ends on    | December 2019                                                                                                                                                        |

This module creates and names [transactions](https://docs.newrelic.com/docs/using-new-relic/welcome-new-relic/getting-started/glossary#transaction) based on your Play controller classes.

**Solr \[3.1.0 – 3.4.0]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/solr-3.1.0/SNAPSHOT/solr-3.1.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.34.0 or higher                                                                                                                                                         |
| Support ends on    | December 2019                                                                                                                                                            |

This module instruments database calls to Solr servers, and collects detailed information about the Solr server itself. It also provides the database server and database name for the queries displayed in [transaction traces](https://docs.newrelic.com/docs/apm/transactions/transaction-traces/introduction-transaction-traces) and [slow query traces](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/view-slow-query-details).

**Solr \[3.5.0]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/solr-3.5.0/SNAPSHOT/solr-3.5.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.34.0 or higher                                                                                                                                                         |
| Support ends on    | December 2019                                                                                                                                                            |

This module instruments database calls to Solr servers, and collects detailed information about the Solr server itself. It also provides the database server and database name for the queries displayed in [transaction traces](https://docs.newrelic.com/docs/apm/transactions/transaction-traces/introduction-transaction-traces) and [slow query traces](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/view-slow-query-details).

**Solr \[3.6.0 – 3.6.2]**

| Download link      | [Download the module](https://oss.sonatype.org/service/local/repositories/snapshots/content/com/newrelic/agent/java/archive/solr-3.6.0/SNAPSHOT/solr-3.6.0-SNAPSHOT.jar) |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Java agent version | 3.34.0 or higher                                                                                                                                                         |
| Support ends on    | December 2019                                                                                                                                                            |

This module instruments database calls to Solr servers, and collects detailed information about the Solr server itself. It also provides the database server and database name for the queries displayed in [transaction traces](https://docs.newrelic.com/docs/apm/transactions/transaction-traces/introduction-transaction-traces) and [slow query traces](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/view-slow-query-details).
