{
  "date": "2015-11-23T22:40:42",
  "slug": "trying-appdynamix-monitoring-application-from-user-to-database",
  "link": "https://www.dbi-services.com/blog/trying-appdynamix-monitoring-application-from-user-to-database/",
  "title": {
    "rendered": "Trying AppDynamix &#8211; monitoring application from user to database"
  },
  "content": {
    "rendered": "<h2>By Franck Pachot</h2>\n<p>.<br />\nI 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. </p>\n<p>At DOAG 3rd floor I&#8217;ve visited the AppDynamics booth and immediately wanted to install the trial version and give it a try.<br />\n<!--more--><br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics.jpg\" alt=\"appdynamics\" width=\"712\" height=\"356\" class=\"alignnone size-full wp-image-5508\" /></a></p>\n<h3>Download and install</h3>\n<p>From the AppDynamics website, there is a 15 days trial version that you can download. I&#8217;ve downloaded the Linux version (controller_64bit_linux-4.1.7.0.zip) because I want to try it on our Oracle Tuning workshop VM. It&#8217;s 500MB and when you unzip you get two files:</p>\n<pre><code>\noracle@vmoratun201:/tmp/appdynamics/ [DB1] unzip controller_64bit_linux-4.1.7.0.zip\nArchive:  controller_64bit_linux-4.1.7.0.zip\n  inflating: controller_64bit_linux-4.1.7.0.sh\n  inflating: license.lic\n&nbsp;\noracle@vmoratun201:/tmp/appdynamics/ [DB1] ls -l\ntotal 1084416\n-rw-r--r--. 1 oracle oinstall 559790650 Nov 20 21:33 controller_64bit_linux-4.1.7.0.sh\n-rw-r--r--. 1 oracle oinstall 550634894 Nov 23 20:35 controller_64bit_linux-4.1.7.0.zip\n-rw-r--r--. 1 oracle oinstall      1997 Nov 22 12:43 license.lic\n</code></pre>\n<p>Yes&#8230; a 500MB &#8216;.sh&#8217; to run as a shell script. If you look at it, it embeds some binary code at the end of the script.<br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics002.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics002.jpg\" alt=\"appdynamics002\" width=\"546\" height=\"199\" class=\"alignnone size-full wp-image-5489\" /></a><br />\nFunny isn&#8217;t it? I like this idea&#8230;</p>\n<p>Then just run it</p>\n<pre><code>\noracle@vmoratun201:/tmp/appdynamics/ [DB1] sh controller_64bit_linux-4.1.7.0.sh\nUnpacking JRE ...\nPreparing JRE ...\nStarting Installer ...\n</code></pre>\n<p>You have a graphical wizard and after a few next-next-next you can connect to the server with a browser:<br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics011.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics011.jpg\" alt=\"appdynamics011\" width=\"800\" height=\"447\" class=\"alignnone size-full wp-image-5491\" /></a></p>\n<h3>Monitoring database</h3>\n<p>Then it&#8217;s very easy. Look at what you can monitor:</p>\n<p><a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics012.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics012.jpg\" alt=\"appdynamics012\" width=\"783\" height=\"537\" class=\"alignnone size-full wp-image-5492\" /></a><br />\nAnd I choose &#8216;database&#8217;.</p>\n<p>I have to set database type (Oracle) and the url of my controller.</p>\n<p>The wizard ask you download the database agent (dbagent-4.1.7.0.zip). I just get the url from there and download it in my VM with wget:</p>\n<pre><code>\noracle@vmoratun201:/tmp/appdynamics/ [DB1] wget https://download.appdynamics.com/self_service/agent/dbagent/2\n--2015-11-23 21:30:12--  https://download.appdynamics.com/self_service/agent/dbagent/21cea4f9066d3131435bbf01\nResolving download.appdynamics.com... 54.244.244.230\nConnecting to download.appdynamics.com|54.244.244.230|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 39230821 (37M) [application/zip]\nSaving to: “dbagent-4.1.7.0.zip”\n&nbsp;\n36% [=======================&gt;                                            ] 14,253,827   191K/s  eta 2m 4s\n</code></pre>\n<p>Then follow the instructions:</p>\n<pre><code>\nunzip dbagent-4.1.7.0.zip\njava -jar db-agent.jar \n</code></pre>\n<p>The agent knows where is the controller (probably from the download url) and connects to it once started.<br />\nI am still in the wizard, waiting to receive that connection:<br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics013.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics013.jpg\" alt=\"appdynamics013\" width=\"800\" height=\"300\" class=\"alignnone size-full wp-image-5493\" /></a><br />\nand a few minutes later:<br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics014.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics014.jpg\" alt=\"appdynamics014\" width=\"752\" height=\"287\" class=\"alignnone size-full wp-image-5494\" /></a></p>\n<p>I really like those simple easy things&#8230; It tells you to wait 3 minutes and 3 minutes later you get it.</p>\n<p>The wizard asks connection information to my database (host, port, service, user, password) and it&#8217;s ready to monitor:</p>\n<p><a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics016.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics016.jpg\" alt=\"appdynamics016\" width=\"657\" height=\"459\" class=\"alignnone size-full wp-image-5495\" /></a></p>\n<p>Not very exiting yet? I&#8217;ve run SwingBench for few minutes.<br />\nLet&#8217;s click on &#8216;Metrics Browser&#8217; and choose some statistics to monitor:</p>\n<p><a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/Capture019.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/Capture019.jpg\" alt=\"Capture019\" width=\"1493\" height=\"853\" class=\"alignnone size-full wp-image-5500\" /></a></p>\n<ul>\n<li>On the left, I can choose any of the statistics we know from V$SYSSTAT</li>\n<li>I can put them on the graph with lot of graphical options</li>\n<li>On the top, &#8216;baselines&#8217; gives the possibility to get a good performance baseline and raise alerts when it deviates from it</li>\n</ul>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"float:left;margin-right:20px\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/appdynamics000.jpg\" alt=\"appdynamics000\" width=\"100\" height=\"100\" class=\"alignnone size-full wp-image-5512\" />And that&#8217;s only a small part of the product, after only one hour installing it and running it without reading any documentation.<br />\nIt can do lot more.<br />\nI&#8217;m running SwingBench here and it&#8217;s Java. I can monitor Java, from main calls to JDBC calls, and match it with the database time. </p>\n<p>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&#8217;s for future blog posts.</p>\n",
    "protected": false
  }
}
