Instrumentation for the Mule 4.x framework.
The original releases of the Mule 4.x instrumentation used the New Relic Java Agent Asynchronous framework to tie the transaction together. But in some Mule applications it was resulting in some of the asynchronous tokens not being expired and some async segments not being ended. Because these items are stored in static caches it could consume large amounts of memory and cause problems. In Version 3.0 we started using distributed tracing headers to tie things together. This results in more transactions being reported but everything gets tied together in the Distributed Tracing view and it does not cause memory issues. If the desire is to have one conhesive transaction then use Release V2.0 provided that memory is not being consumed. If the distributed tracing view is acceptable then use Release V3.0
To install:
- Download the latest release jar files.
- In the New Relic Java directory (the one containing newrelic.jar), create a directory named extensions if it does not already exist.
- Copy the downloaded jars into the extensions directory.
- Restart the application.
Once installed, the instrumentation will track transactions through the various Mule components.
Note that the jar necessary for building the Mule-Agent extension are no longer available in Maven. As a result, the extension has been removed from the build process. It can be built if you have access to either AnypointStudio or a Mule Server. Follow the instructions here to build: https://github.com/newrelic-experimental/newrelic-java-mule-4/blob/main/Mule-Agent-Build.md
Note that the a jar necessary for building the Mule-Batch-ee extension are no longer available in Maven. As a result, the extension has been removed from the build process. It can be built if you have access to either AnypointStudio or a Mule Server. Follow the instructions here to build: https://github.com/newrelic-experimental/newrelic-java-mule-4/blob/main/Mule-Batch-Build.md
Building the extension requires that Gradle is installed. To build the extension jars from source, follow these steps:
To build a single extension with name extension, do the following:
- Set an environment variable NEW_RELIC_EXTENSIONS_DIR and set its value to the directory where you want the jar file built.
- Run the command: ./gradlew extension:clean extension:install
To build all extensions, do the following:
- Set an environment variable NEW_RELIC_EXTENSIONS_DIR and set its value to the directory where you want the jar file built.
- Run the command: ./gradlew clean install
New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub.
We encourage you to bring your experiences and questions to the Explorers Hub where our community members collaborate on solutions and new ideas.
We encourage your contributions to improve [Project Name]! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com.
A note about vulnerabilities
As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.
If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through HackerOne.
[Project Name] is licensed under the Apache 2.0 License.
[If applicable: [Project Name] also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document.]