Image: Snugg LePup/Flickr
At the time when we were looking for a monitoring solution (2006-2007), APM as we know it today had yet to be defined. There was no Gartner MQ; real-user-monitoring (RUM) was too high level; “agent monitoring” brought concerns of overhead and complexity; instrumenting the application meant to ARM it (i.e. Application Response Measurement); and transaction tagging was a pipe dream.
This created a fierce debate on the risks and rewards of agent vs. agentless monitoring - read The Monitoring Duality of APM. So, when we were developing our monitoring approach, our first priority was to do no harm, then collect performance metrics.
We first implemented agentless RUM technology (i.e. wire data analytics) to gain insight into the application behavior and build a baseline that captured a normal workload.
Secondly we focused on synthetic transactions to provide visibility during off peak hours when transaction volumes were low.
Months later, after we had a basic end-user-experience (EUE) solidified and earned the trust of the stakeholders, we began working on deploying agent-based monitoring in production to get a runtime view of the J2EE stack tying it back to the business transactions.
Today’s APM has come a long way since then and has advanced to levels that some may refer to as “magic”. But with these new found powers, APM now comes with a paparazzi of peddlers trying to sell you something, and hucksters who are preaching how to reach the promised land of performance through marketing glossies.
Deciding on an APM solution that's right for your environment can be a daunting task with so many vendors using APM in their messaging today. It would be wise to start small, curate a POC, and get comfortable with the solution nuances, scrutinizing the integration touch points that will coalesce with your current operational processes.
Since there are so many facets to consider when selecting a modern-day APM solution, be wary of the “one size fits all” approach no matter how compelling the story. Remember, you are striving for a robust, real-time application monitoring solution which will most likely utilize a combination of active and passive monitoring techniques.
Consider that the Age of the Cloud has precipitated a new agent concept which is lightweight, deploys quickly, and goes in virtually undetected with zero configuration. These agents are built with a survival mode in mind including a self-healing option for hands-free maintenance.
Looking into the future, I see an evolution towards an intelligent transparent agent, that once given a “target application” to monitor, will run autonomously, and spawn automatically as virtual resources shift. The inherent behavioral learning capabilities will allow it to self-regulate and adjust system resources accordingly, utilizing adaptive controls to support predefined SLAs.
For further insight, click here for the full article.