AppDynamics is a powerful tool for
the analysis of distributed Java and .NET applications. As it has only low overhead
costs (according to the vendor < 2%), it can also be used in production environments.
I use JBoss Fuse 6.0.0 on MacOS. But the setup is similar on other operation systems.
Here we go.
Download AppDynamics Lite Java version from http://www.appdynamics.com/.
Name and E-Mail address must be provided (and normally you will be contacted by the vendor...).
Unzip the downloaded ZIP file AppDynamicsLite.zip to your desired installation
directory <APP_DYNAMICS_HOME>:
Go to the installation directory:
Unzip the viewer package:
Enter the viewer directory:
Start the viewer:
Open URL http://localhost:8990/ with your browser. Default user is admin
with password admin. You see an empty dashboard.
If you monitor an OSGI runtime with AppDynamics, you have to extend the boot
delegation parameter of FUSE ESB. See
http://litedocs.appdynamics.com/display/ADLite/OSGi+Infrastructure
for further explanations. As I use Felix, I have to add com.singularity.* to
the org.osgi.framework.bootdelegation property. For easier upgrade of FUSE ESB,
I do not edit <FUSE_ESB_HOME>/etc/config.properties but <FUSE_ESB_HOME>/etc/custom.properties.
It is important that you don't forget to add all default values. And of course these values
may change if you upgrade your FUSE ESB installation. Finally, I add following line to
<FUSE_ESB_HOME>/etc/custom.properties:
If your are not sure which OSGI framework you use, you can query your configuration in your
Karaf console with:
Configure AppDynamics agent for FUSE ESB. E.g., set $KARAF_OPTS in your shell:
Or alternatively, add following statement to your start script <FUSE_ESB_HOME>/bin/karaf:
Start your FUSE ESB (in the same shell where you set $KARAF_OPTS):
Create some traffic on your FUSE ESB, e.g. invoke a web service etc.
Go back to your AppDynamics viewer browser window at http://localhost:8990/
and you should see some business transactions.
What is JBoss FUSE ESB? And what is its relation to OSGI, Apache Felix, Eclipse Equinox, Apache Karaf and Apache ServiceMix?
Felix and Equinox are both OSGI core runtimes
Karaf is the ServiceMix Kernel and provides a "distribution" based on Felix or Equinox by adding features such as an admin console and blueprint configuration.
ServiceMix is an integration container aka ESB powered by OSGI unifying the features of ActiveMQ, Camel, CXF, and Karaf (and other)
JBoss Fuse ESB is an ESB based on ServiceMix adding bug fixes and extended documentation
I just downloaded the latest Java Update 1.7.09 for MacOS and installed it. And as usual, I had to fix the JAVA_HOME environmental property, so that all my Maven etc. tools still worked properly. In ~/.bash_profile, I added/updated following entries:
I use JAVA_HOME6 and JAVA_HOME7 so that I can easily switch the standard Java version.
But, stop, stop, there must be a better way to do that, so that I don't have to update
these lines after every Java download. And actually it is by using the
not-so-well-known-but-very-useful command java_home:
The java_home command returns a path suitable for setting the JAVA_HOME
environment variable. It determines this path from the user's enabled and
preferred JVMs in the Java Preferences application. Additional constraints
may be provided to filter the list of JVMs available. [...] The path is
printed to standard output.
On my machine, java_home prints following path to the STDOUT:
So, I can change my .bash_profile as follows:
On my machine, my Java environmental parameters becomes: