Pages

Thursday 8 November 2012

New Relic Agent in JBoss AS7

New Relic is a company with a hot new cloud based performance and monitoring service.
Without having performed a deeper evaluation, I must still say that it looks quite impressive and has a clean and very nice UI.
As you sign up for their service you get to download a zip with the New Relic Agent. For a Java-environment, it contains e g some JARs, configuration files and a README.txt explaining how to run the bundled installer.
If you're running JBoss AS7 you are currently (this will certainly be amended) a bit on your own though. But don't despair (or wait in wain)! The solution is quite simple. Just follow steps below and and you're up and monitoring your apps in no time.

Note: This has successfully been tested using JBoss AS7.1.2.Final on OSX 10.8.2 with Java SE 1.6.0_37.

1. create the directory structure
$JBOSS_HOME/module/com/newrelic/agent/main
where JBOSS_HOME is the root install directory of your JBoss AS7 distribution. 

2. add a file named module.xml with the following content to the directory main from 1.
<?xml version="1.0" encoding="UTF-8">
<module xmlns="urn:jboss:module:1.0" name="com.newrelic.agent">
  <resources>
    <resource-root path="newrelic.jar"/>
    <!-- Insert resources here -->
  </resources>
</module>

3. from the downloaded zip, copy the file newrelic.jar to the directory main from 1.
This is the New Relic Agent.

4. from the downloaded zip, copy the file newrelic.yml to the directory main from 1.
This is the base configuration for the New Relic Agent.

5. add the following lines th the JBoss AS startup script (e g) $JBOSS_HOME/bin/standalone.sh

JBOSS_MODULES_SYSTEM_PKGS="$JBOSS_MODULES_SYSTEM_PKGS,com.newrelic.agent"
JAVA_OPTS="$JAVA_OPTS -javaagent:<path>/newrelic.jar"
Make sure to change the <path> to where the newrelic.jar is located - it should be in the directory in 1.


6. start JBoss AS with (in the simplest form) e g
$JBOSS_HOME/bin/standalone.sh

7. deploy you app (ear/war etc) to JBoss AS7

8. Look at https://rpm.newrelic.com/ how your app is discovered - it might take a few minutes - and then how it behaves. Configure, monitor, set alerts & notifications, etc.

Nice!