Comments
yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Expo on Google News
SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
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

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:

  • Session-layer response time: request/response measurements specific to an application
  • Application component response time: component-level performance unique to specific application functions
  • User transaction response time: click to glass, or end-user experience

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
Let's set the stage a bit more. When there's a performance problem with a critical application, our immediate goal is to restore service as quickly as possible. A triage approach begins with identifying the problem, progresses to isolating the fault domain, and leads to capturing enough diagnostic insight to prove the conclusion, facilitating efficient handoff to the appropriate domain team. Sound familiar? Not only is it something you practice frequently, it is the promise made by most AA NPM (and many other) solutions. But what constitutes appropriate diagnostic insight if the problem is related to application processing? (After all, they can't all be network problems.)

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.)

Identifying Transactions
For probe-based solutions, deep packet inspection (DPI) approaches can add valuable insight into these rudimentary session-layer measurements by identifying the transaction that each measured request/response exchange represents. A web URI, a SOAP request and a SQL select statement are common transaction examples; each would be comprised of a single request message followed by a single reply message (and of course each message could be transported via multiple network packets). DPI can be used to extract the transaction identification from the HTTP header, the SOAP body, or the database-specific SQL syntax. Given this capability, unique transaction-specific measurements can be recorded, baselined, reported, assigned thresholds, and used to generate performance alerts. No longer is the measurement mixing a complex Java server page that takes 6 seconds with a simple JavaScript request that takes 100 milliseconds, or a 5 millisecond SQL select statement with a 15-second stored procedure.

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
This application transaction or component measurement can be considered the lowest common denominator required for effective collaboration with the development team. It should provide enough diagnostic insight to accomplish two goals inherent in triage:

  • Accept that there is a problem related to an understandable application/code function (even though the data comes from a network tool)
  • Begin to investigate the application logic invoked by the transaction, along with underlying dependencies.

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.

Click here for the full article

About Gary Kaiser
Gary Kaiser is a Subject Matter Expert in Network Performance Analytics at Dynatrace, responsible for DC RUM’s technical marketing programs. He is a co-inventor of multiple performance analysis features, and continues to champion the value of network performance analytics. He is the author of Network Application Performance Analysis (WalrusInk, 2014).

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
With more than 30 Kubernetes solutions in the marketplace, it's tempting to think Kubernetes and the vendor ecosystem has solved the problem of operationalizing containers at scale or of automatically managing the elasticity of the underlying infrastructure that these solutions n...
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructur...
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mis...
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performa...
As Cybric's Chief Technology Officer, Mike D. Kail is responsible for the strategic vision and technical direction of the platform. Prior to founding Cybric, Mike was Yahoo's CIO and SVP of Infrastructure, where he led the IT and Data Center functions for the company. He has more...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021



SYS-CON Featured Whitepapers
ADS BY GOOGLE