Back in the nineties (which is actually not long ago) when I needed to troubleshoot a performance issue, all I needed was a couple of Unix commands (vmstat,netstat and ps to be specific) and I was able to tell my customer what was wrong with the application. Sometimes it was the Server itself that was running out of resources, sometimes it was the JVM that was running out of Heap and sometimes it was a backend Database Server that was responding poorly. In most cases, I was able to narrow down the issue within minutes without the help of any fancy tools.
Gone are the good old days.
In modern enterprise, where systems are as inter-weaved as grandma’s spaghetti, Operating System level monitoring using the tools provided by OS is no longer enough. Take a look at the stark difference between old generation application and a modern application.
In figure a, at a high level, a performance issue can occur in four systems. Pretty straight forward.
1. Physical Infrastructure of the server that hosts the Application
3. Physical Infrastructure of the server that hosts the Database
In figure b however, which represents a modern day Application, a performance issue can occur in tons of places as follows.
1. Physical Infrastructure of the server that hosts the Application Server
2. Application Server
4. Physical Infrastructure of the server that hosts the Database
6. Physical Infrastructure of the server that hosts the Directory (Ex. Active Directory)
7. Directory (Ex. Active Directory)
8. A remote application that is accessed via a Web Service call (or via countless other ways)
9. Physical Infrastructure of the server that hosts the remote Application
10. Message Queuing Server
11. Physical Infrastructure of the server that hosts the Message queuing server
13. SAN (Storage Area Network)
14. A Cache server (external cache)
15. A rules Engine Server
16. A software or Hardware Load Balancer, or a Proxy/Web Server
17. A call to an external vendor that goes through a firewall
18. Calls to ERP systems such as SAP
19. Calls to Transaction processing systems such as Mainframe
20. Services obtained from Cloud
21. A Job Scheduling Server
22. A secure file transfer server
23. A security Policy Server
Welcome to the modern world !!
Question: How can I possibly monitor all these in a consistent manner that enables me to pin point the problem area, without investing in 10 different monitoring solutions ?
Answer: APM Software
An APM product will enable you to monitor the diverse sub systems and handle the monitoring data centrally. This means, just by taking a peek at a monitoring dashboard of a modern APM which has drill down capabilities, you can pin point the problem area in a very short time. APM products have capability to configure Alerts so that you can inform operations in a timely manner. You can also store the monitoring data for future analysis to draw the trending of Application performance.
A modern APM solution will provide end-to-end monitoring starting from End user all the way to a backend Mainframe system. This is extremely valuable because the sub systems in a complex Application can involve several support teams such as DBAs, Network Admins, Security Admins, Mainframe Admins, Application Server Admins, OS Sys Admins etc. Without an APM solution what you will be doing is ‘playing the blame game’. An APM solution puts an end to blame game and clearly shows you what is wrong.
Let’s face it. When your customer finds out about an issue before you do, you have got a credibility issue to solve. I’ve seen contracts being cancelled due to customer thinking that the service provider (you) did not have enough monitoring in place to monitor mission critical systems. An APM solution fixes this issue by providing 24X7 monitoring.
To summarize, here are the top reasons why you should invest in an APM solution
1. Old generation monitoring (silo-ed) is no longer enough due to the complexity of modern day Applications
2. Modern APM provides end-to-end monitoring so that you don’t need to invest in several monitoring tools.
3. Huge ROI. What you are really getting is elevated credibility among your customers, by being proactive in monitoring your systems using an APM product
4. Avoid the blame game among various teams in the organization which leads to quicker issue resolutions
5. Monitor business transactions in real time including details like backend SQL calls, code level diagnostics etc in order to locate the problem area.
6. Gain deeper insight to the Application performance for capacity planning
Ready to invest in an APM solution ? Awesome decision. Now to get started, please read my article ‘7 critical things you should look for in an APM solution’. Do your due diligence in giving careful consideration to as many APM products you can and decide on a couple to do a POC in your premises.
Remember: Prevention is better than cure. Prevent application outages and downtime by investing in an APM solution.