One of the major uses of an APM such as AppDynamics is the ability to collect application data at method level. For example, let’s say you have a method named processOrder in your code that accepts OrderID and Username as parameters. What if you want to capture the Username as part of the performance metrics ? This can be extremely valuable, for instance, to identify which user could be submitting orders that are very slow to process. In AppDynamics, you can achieve this by using Data Collectors. In this blog post, let me show you how it is done.
- Log on to AppDynamics Controller UI
- Navigate to Configuration -> Instrumentation and click Data Collector tab
- You have two types of Data Collectors to choose from
- Method Data Collector – Captures method arguments and return values.
- HTTP Data Collector – Captures URLs, Headers and Cookies
- Click on Add under the Method Data Collector
- Configure the Method Data Collector as follows
- Name: Provide a meaningful name for this Data Collector
- Select Apply to new Business Transactions. If you don’t select this, you have to manually select the Business Transactions.
- Provide the method signature (identifying a method) by its fully qualified class name and method name.
- If the method is overloaded, i.e the same method name with various arguments, you need to select Is this Method Overloaded check box and choose the method signature you want to monitor
- Optionally specify match condition to choose the method
- Under Specify the data to collect from this Method Invocation, enter a display name (this is the name that will show up in Transaction Snapshots under User Data) and the data to collect. You can collect method arguments and/or return values
- Note that you can also configure HTTP Data Collector if you wish you capture HTTP metadata such as URLs, Cookies and Header values.
Remember how Adobe (Macromedia) Flash created such a buzz and ruled the world for over a decade ? While websites created with HTML/CSS/CGI looked like beat-up Kia, websites created with Flash looked like brand new Mercedes Benz. A complete industry was born after Flash animation. Alas, Flash is destined to die due to the enormous amount of security vulnerabilities and Performance issues. While I’m sad that Flash is going away, that is the reality in this fast-paced Information Era. Only the fittest survive. And we are about to see if Java EE is fit enough.
Image Source: oracle.com
In this free ebook, I introduce 9 free tools that can be life savers in managing Java Applications. These tools have been time tested, reliable and have helped countless Application Support Engineers and Developers. They DO WORK. These tools can be used to solve problems ranging from ‘Out Of Memory’ errors to ‘Slow’ Applications.
Do you know the single biggest reason why some APMs fail? Do you know what you have to do first before you even begin evaluating various APM solutions? Do you know the hidden cost in any APM system?
Selecting an APM solution can be tedious task. In this free 18 pages ebook, I present 9 criteria to choose a reliable APM with highest ROI. I’ve derived these criteria based on years of experience in supporting Application infrastructure of various sizes. These criteria will help you clearly understand what exactly you should be looking for in any potential APM solution. You will be ready to ask the right questions when you meet with the APM vendor and will not be caught off guard later.
Enjoy the ebook and Good Luck.
Dealing with SSL issues is one of the most annoying and frustrating problems. But it does not have to be. In this short guide, I will explain how ssl works, teach how to troubleshoot most common ssl issues and show you how to use the most commonly used SSL tools.
Get a high level overview of AppDynamics, one of the leading APM tools in the market. Learn the architecture, capabilities and practical instructions on how to get started. This document will help you to install an AppDynamics Controller and configure a Java agent to start monitoring in minutes.
ElasticSearch is creating lot of buzz, and for good reasons. It is lightning fast, rock solid and super easy to setup. Searching logs has just gotten glamorous with ElasticSearch. Organizations like ebay,uber and netflix are using it, and reaping the benefits. In this brief guide, I explain ELK (Elastic Search, LogStash, Kibana) from a 10,000 foot level. You will gain instant understanding of how all this works, how to get started and where to get more information.
Glad you are here. It’s time to take a deeper look at all the various monitoring metrics that AppDynamics provides. We have so far done the following:
- Installed AppDynamics Controller
- Installed a sample application (Node.js,REST and mysql) and installed appdynamics agent
- Ensured the application shows up in the controller UI.
Note that we have not customized any monitoring elements yet. i.e whatever we are going to see is out-of-the box, which is one of the coolest things about AppDynamics. Let’s start.
How to view the Flow Map of the Application ?
Application flow map provides an excellent view of the data flow of the application. AppDynamics automatically tracks all the inbound and outbound calls of the instrumented application and attempts to draw this flow map. It is like an interactive Visio Diagram of the application infrastructure architecture that you did not create. (AppDynamics created it for you). Let’s take a look at the Flow Map of the sample application we have instrumented.
So you have installed AppDynamics Controller, instrumented a simple Java Application and even viewed it from AppDynamics Controller UI. You have come a long way. Excellent work! In this blog post, I’ll take you a step further by showing you how to view critical Application Metrics in the UI. In order to get to see various monitoring metrics, let us use a more sophisticated application (one with a backend database).
Fortunately a sample application is available at github specifically for this purpose. Kudos to the developers who made this available to all of us. The application is based on Docker (no surprise there) so you need to have Docker installed in your server that you are planning to use as the Application host. If you don’t want to go this route, simply instrument one of your applications (preferably in Dev environment).
Here are the steps to install the docker based sample application.
- Clone the git repo
git clone https://github.com/Appdynamics/SampleApp.git
Now that you have your AppDynamics Controller up and humming, the next step is to instrument an Application to see the awesomeness of AppDynamics in practice.
For this blog post, I’ve chosen a very simple Java Web Application running on a tomcat server (It is the ‘sample’ application that comes with tomcat). The instrumentation process is fairly straight forward. While what I’m about to show is fairly manual, in real world scenarios involving hundreds of servers, you will be using some sort of automation 🙂
At high level, here is the procedure:
- Download the agent software either from the controller UI, or from appdynamics website
- Copy the agent software to the target application server (which is to be instrumented)
- Update the java command line that starts the application to instrument AppDynamics and restart the Application Server.
Ready ? Let’s get started.