Yes, AppDynamics is awesome for Application monitoring – Java Heap, deep transaction tracing, tons of out-of-the-box framework monitoring (JDBC,WebService etc) and the list goes on. But do you know Appdynamics can be used to effectively monitor Servers too, whether it is virtual or physical? When I say server, I mean the host operating system such as RedHat Enterprise Linux, Windows 2012, Solaris etc. Let me show you how you can do this.
Enter AppDynamics Machine Agent
While Java can be monitored using a Java Agent, a Server can be monitored using a special type of agent called Machine Agent. You will have to have license to run these agents (When you purchase Application agents, typically AppDyanmics throws the same number of Machine Agents, and so you should be good in terms of additional cost). If you are not sure about your present licensing situation, click on ‘licensing’ in your Controller UI as shown below.
Unlike Application agents which run inside the JVM/CLR, Machine agent is a standalone Java program that runs on the host operating system. It collects hardware metrics and sends them to Controller (once a minute). A user can view these metrics via Controller UI. Pretty simple, hah?
Java Heap is a labyrinth. You can spend hours or even days analyzing a heap dump from a production Java application. Heap is where all the objects created by your application live. And even in a relatively simple application, there could be hundreds of thousands of objects created. When dealing with Java memory leak, you know you are looking for one the following (or both):
- Excessive number of objects of certain class
- Objects with unusually large size
Fortunately, Appdynamics provides a feature using which you can easily reveal both of the above cases. Let’s get right to it.
- In AppDynamics Controller UI, locate the Node that you want to troubleshoot and click on ‘Memory’ tab
In this part, let’s explore AppDynamics facilities for diagnosing Memory Leaks. AppDynamics provides two powerful tools to hunt down memory leaks.
- Automatic Leak Detection
- Objet Instance Tracking
Automatic Leak Detection
With Automatic Leak Detection enabled, Appdyanmics can capture objects that live longer than usual period – i.e long lived Collection objects that simply won’t get garbage collected. If your application is leaking memory, it is definitely one of these long-living, never-dying objects that cause the leak. Use the following procedure to make use of this tool.
Troubleshooting JVM memory issues can be daunting, but you if you don’t fix it, it can kill your application and possibly your face in front of your customers. There is good news though. With any modern APM tool, you virtually get an X-Ray vision to this labyrinth named Java Heap.
In this blog post, I’ll show you how to use AppDynamics to troubleshoot Java memory issues.
AppDynamics is one of the leading APM vendors in the market, providing tons of useful tools ranging from Hardware monitoring to End user experience monitoring to operational data analytics (Actually it can be quite overwhelming. If you don’t know what exactly you are looking for in the tool, you can go in circles. But don’t worry, I can help).
There are three major areas where AppDynamics can help in regards to Java memory troubleshooting.
Software installation has never been more fulfilling since YUM came along.
YUM is the most popular rpm based interactive package manager. It is super powerful and reliable.
In this quick article, I show how to install apache web server, the world’s most popular web server in your Linux Server.
You need to have root access to do this. You also need to have internet access on the server you are installing apache.
Simply run the command
sudo yum install httpd
That’s it. Yum does the rest.
Once done, which takes about 10 seconds, start the httpd server
Sudo service httpd start
Once the service starts, simply use a browser to access the server (use the default server name or the ip address).
Or you can choose the geeky way to use curl to test out. I created a basic html file. Here is how to access it
You can check access.log to see how you did. Access_log is present under /var/log/httpd/
The configuration file for apache (httpd.conf) will be under /etc/httpd. (This depends on your platform).
That’s it. Your own enterprise grade Web Server, up and running in about 10 seconds.
Way to go YUM !!
We live in the world of APMs where traffic lights in fancy dashboards show us what’s wrong with our applications in a heartbeat. Definitely a proud achievement (and I highly recommend investing in an APM solution). But at times, you have to get down to very basic, old fashioned troubleshooting. And to be honest with you, it is outright fun.
In this article I want to show you how you can troubleshoot using web server access log. I am going to use Apache 2.X as example web server (Even with Nginx on the rise, apache is still the most popular web server in the world. Sorry IIS).
Before we dive in to the access log, here is a very high level architecture that shows where apache typically sits. For simplicity sake, I have not shown things like DMZ zone, Caching servers, Web Access Firewalls, Reverse proxys etc)
AWS (Amazon Web Services) is a leading Cloud services provider. The product (service) offerings from AWS are enormous. For newbies, it may be difficult to understand what each Service is used for. In this short article I will give you a high level overview of the various AWS Services.
Instead of typing pages of information, I’ve compiled and distilled the core information and presented here in a tabular format. In this way, it can also act as a quick reference.
Occasionally you will want to know how many lines are there in a file. In unix world, you can use the nifty ‘wc’ command
wc –l < filename>
In Windows Powershell you can use the built in cmdlet named ‘measure-object’. It is pretty powerful.
For counting lines in a file, use the following command
Get-content <filename> | Measure-Object –Line
If you want to learn more about measure-object,
Help Measure-Object –detailed
If you come from the unix world, there is a nifty command you can use to ‘sleep’ in shell scripts. What about windows powershell?
You can use the command start-sleep just like you use ‘sleep’ in unix.
You can use either seconds or milliseconds as shown below:
I am sure you have gone through this: You see an interesting article in a website and decide to print it to take a closer look. The article itself is about a page or two in length. But what happens when you go to the printer to collect it? That’s right. It prints pages and pages of data, mostly ads and even more annoying – blank pages.
With Chrome, there is a neat feature that lets you avoid those annoying ads and blank lines.
Check this out. Here is a sample page that you see online:
Now when you print this article (either using Ctrl-P or using the chrome menu to choose ‘print’, you will see the following page