I like to come upon new monitoring software that help to go quickly from user response time to root cause. And I love applications that can be installed easily and at which I can give a try without reading pages of manual.
Download and install
From the AppDynamics website, there is a 15 days trial version that you can download. I’ve downloaded the Linux version (controller_64bit_linux-126.96.36.199.zip) because I want to try it on our Oracle Tuning workshop VM. It’s 500MB and when you unzip you get two files:
oracle@vmoratun201:/tmp/appdynamics/ [DB1] unzip controller_64bit_linux-188.8.131.52.zip
oracle@vmoratun201:/tmp/appdynamics/ [DB1] ls -l
-rw-r--r--. 1 oracle oinstall 559790650 Nov 20 21:33 controller_64bit_linux-184.108.40.206.sh
-rw-r--r--. 1 oracle oinstall 550634894 Nov 23 20:35 controller_64bit_linux-220.127.116.11.zip
-rw-r--r--. 1 oracle oinstall 1997 Nov 22 12:43 license.lic
Yes… a 500MB ‘.sh’ to run as a shell script. If you look at it, it embeds some binary code at the end of the script.
Funny isn’t it? I like this idea…
Then just run it
oracle@vmoratun201:/tmp/appdynamics/ [DB1] sh controller_64bit_linux-18.104.22.168.sh
Unpacking JRE ...
Preparing JRE ...
Starting Installer ...
You have a graphical wizard and after a few next-next-next you can connect to the server with a browser:
Then it’s very easy. Look at what you can monitor:
I have to set database type (Oracle) and the url of my controller.
The wizard ask you download the database agent (dbagent-22.214.171.124.zip). I just get the url from there and download it in my VM with wget:
oracle@vmoratun201:/tmp/appdynamics/ [DB1] wget https://download.appdynamics.com/self_service/agent/dbagent/2
--2015-11-23 21:30:12-- https://download.appdynamics.com/self_service/agent/dbagent/21cea4f9066d3131435bbf01
Resolving download.appdynamics.com... 126.96.36.199
Connecting to download.appdynamics.com|188.8.131.52|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 39230821 (37M) [application/zip] Saving to: “dbagent-184.108.40.206.zip”
36% [=======================> ] 14,253,827 191K/s eta 2m 4s
Then follow the instructions:
java -jar db-agent.jar
The agent knows where is the controller (probably from the download url) and connects to it once started.
I am still in the wizard, waiting to receive that connection:
and a few minutes later:
I really like those simple easy things… It tells you to wait 3 minutes and 3 minutes later you get it.
The wizard asks connection information to my database (host, port, service, user, password) and it’s ready to monitor:
Not very exiting yet? I’ve run SwingBench for few minutes.
Let’s click on ‘Metrics Browser’ and choose some statistics to monitor:
- On the left, I can choose any of the statistics we know from V$SYSSTAT
- I can put them on the graph with lot of graphical options
- On the top, ‘baselines’ gives the possibility to get a good performance baseline and raise alerts when it deviates from it
And that’s only a small part of the product, after only one hour installing it and running it without reading any documentation.
It can do lot more.
I’m running SwingBench here and it’s Java. I can monitor Java, from main calls to JDBC calls, and match it with the database time.
This is the point: you drill down from the user response time through the profiling of the java methods, and when you are in a jdbc call, then you drill down to the database time. But that’s for future blog posts.