Everything about Web and Network Monitoring

The Application Performance Monitoring Primer (Part 3 of 3)

Application Management (AM) includes project management, development, testing, quality assurance, release management, application monitoring, and responding to the information supplied by monitors.  Application Performance Monitoring(APM) is application monitoring that is focused on performance rather than security, availability, planning, or some other matter.This article is part three of a primer for those who have never heard about APM.  It is helpful to read part one and part two first.Part Two of this article ended by saying:

“This allows the development team to effectively implement end-user experience monitoring; user-defined transaction profiling; application component discovery and monitoring; and application component deep-dive monitoring, all with just one tool.”

Part Three continues by describing how to use Paid Monitor cloud-based monitoring to accomplish user-defined transaction profiling, and application component discovery and modeling.

User-Defined Transaction Profiling How-To

User-Defined Transaction Profiling watches a transaction as it works its way through the application stack and infrastructure services.  It measures how long it spends within each layer or service.  These data help identify the layer or service that is slowing the application down.

If your programming language of choice allows you to send an HTTP request to a web server (which describes all the major languages), then the Paid Monitor Open API lets you send any data to any Paid Monitor monitor.  This simple tool is ideal for monitoring the time spent within each layer or service.

To implement user-defined transaction profiling, first record the timestamp just before entering an application layer or invoking a service.  Then invoke the layer or service.  Then subtract the previously-saved timestamp from the current timestamp.  This tells you how long your code was in the layer or service.  Finally, use the addResult action to send the time differential to your monitor.

The code is the easy part.  Identifying the layers or services you want to monitor is not so cut-and-dried.  However, this is a necessary step that any monitoring system will require.  Of course, you will focus on those that have proven to be troublesome in the past.  You will likely want to keep track of recent modifications, too, even if you do not expect trouble from them.

You need to create the monitors before you start adding results to them.  You can use the API’s addMonitor action to create a monitor, but IMHO it’s easier from the web interface.

The addResult action requires the api key, the authorization token, and the monitor id.  These data are also available through the web interface.  You can write code to retrieve them, but you don’t have to.

And that’s all there is to it.  You can use a stable product with a simple interface to profile invocations of any (or all) layers/services.

Application Component Discovery and Modeling How-To

Application Component Discovery and Modeling records what software and hardware components are exercised as application transactions are executed.

The same Paid Monitor API that is described above can work for you here, too.  Just use the addResult action from the point at which the software/hardware components are used.  If you want to record the amount of time spent using them, code it as described above.  If you are only interested in a count of the number of accesses, forget the timestamps and send the value 1 to the monitor.

Again, the monitor needs to be pre-created and you need to get the api key, the authorization token and the monitor id.  These things only need to be done once.

References

The Application Performance Monitoring Primerby Warren Gaebel.

Magic Quadrant for Application Performance Monitoring.  Published 2010.02.18 by Gartner, Inc. at www.quest.com/Quest_Site_Assets/WhitePapers/Gartner-Magic-Quadrant-for-Application-Performance-Monitoring-from-Quest-Software_1.pdf.  Accessed 2011.12.05.Paid Monitor Open API.  Published by Paid Monitor at portal.monitor.us/api.  Accessed 2011.12.05.

Paid Monitor Open API Documentation.  Published by Paid Monitor at monitor.us/api/api.html.  Accessed 2011.12.05.

Paid Monitor Transaction Monitoring.  Published by Paid Monitor at portal.monitor.us/index.php/products/transactions-monitoring.  Accessed 2011.12.05.

Try Paid Monitor For Free.  A 15-day free trial.  Your opportunity to see how easy it is to use the Paid Monitor cloud-based monitoring system.  Credit card not required.

The Paid Monitor Exchange at GitHub.  This is the official repository for scripts, plugins, and SDKs that make it a breeze to use the Paid Monitor system to its full potential.

Post Tagged with

About Warren Gaebel

Warren wrote his first computer program in 1970 (yes, it was Fortran).  He earned his Bachelor of Arts degree from the University of Waterloo and his Bachelor of Computer Science degree at the University of Windsor.  After a few years at IBM, he worked on a Master of Mathematics (Computer Science) degree at the University of Waterloo.  He decided to stay home to take care of his newborn son rather than complete that degree.  That decision cost him his career, but he would gladly make the same decision again. Warren is now retired, but he finds it hard to do nothing, so he writes web performance articles for the Monitor.Us blog.  Life is good!