From the Blogosphere
Transaction-Centric NPM | @CloudExpo #APM #DevOps #Microservices
When there’s a performance problem with a critical application, our immediate goal is to restore service as quickly as possible
By: Gary Kaiser
Oct. 16, 2015 09:00 PM
Transaction-Centric NPM: Enabling IT Operations/Development Collaboration
In my last post, I wrote about the value of IT / business collaboration, and the importance of a common language, a common definition of end-user experience - user transaction response time - as the one performance metric both IT and business have in common. In it, I provided some background on the importance of understanding exactly how we define response time, since this definition dictates the usefulness of the measurement. For the sake of brevity, I'll summarize three common definitions here:
These definitions remain important as we consider the other key part of the organization that IT operations must collaborate with: the development team. This is something that you probably already do, perhaps too frequently, and these encounters might remind you of attempting to use your high school French as you attempt to explain your indigestion to a harried pharmacy clerk in Paris. (I never claimed to be a master of analogies.)
Application Performance Triage and AA NPM: A Tenuous Partnership
The answer is something more than a session-layer response time measurement, that ubiquitous metric present in virtually all AA NPM solutions since the late 1990s. These very basic measurements summarize all request/response timings on a given TCP connection without differentiating between transaction types, unfortunately and unavoidably mixing 10 millisecond queries with 15 second reports. While the label - "Application response time" - may sound promising, the measurements themselves are relatively unactionable in real life. Armed with this measurement, the information you are able to pass to the development team is only slightly more interesting than saying "my network tool says your app is slow." (Or, to the French pharmacy clerk, "J'ai mangé quelque chose de mauvais - I ate something bad.") The result? The now-proverbial war room. (I'll poke at some war room promises in another blog.)
In order for this DPI approach to be broadly effective, the analysis (decode) must be sophisticated and flexible enough to parse important transaction parameters. A contemporary example is a web application that uses a single URL for many different transactions, where the transaction parameters are not included in the URL string itself, but rather embedded in the request body. The decode must be able to understand and act on this complexity, and not use the single URL as the identifier for all transactions.
Transaction Visibility Is Just the Beginning
The development team may still have to work to reproduce the problem (especially if it is intermittent) and trace code execution (this isn't a Dynatrace PurePath, after all), but it achieves our stated goal of inter-team collaboration by defining the problem in language that the development team can relate to. (Ça va?)
If I were only concerned with highlighting the fundamentals of communicating with development teams, I might stop here. (In fact, in the extended AA NPM market, it's quite common to stop here.) But there remains a critical missing link, one that significantly impairs your ability to leverage this application transaction insight.
Reader Feedback: Page 1 of 1
Latest AJAXWorld RIA Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week