What is Full Stack Application Performance Monitoring?

2,129 views

Published on

Sign up for a free trial: http://bit.ly/1d0xxhr

Modern web applications are complex, and they are only getting more complex. Not only does every business manage a stable of applications that are crucial to their operation, there is an ever-growing number of businesses whose web presence is the business. There are tools to manage every part of each application, and many apps even provide self-targeted monitoring capabilities.

Unfortunately, most tools don't give you the entire picture, and manually stitching together the capabilities of a host of myopic tools is time-consuming. Monitoring the full application requires the ability to monitor the full stack of technologies involved.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,129
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

What is Full Stack Application Performance Monitoring?

  1. 1. AppNeta TM What Is Full Stack Application Performance Monitoring? An AppNeta Article
  2. 2. What is Full Stack Application Performance Monitoring? Modern web applications are complex, and they are only getting more complex. Not only does every business manage a stable of applications that are crucial to their operation, there is an ever-growing number of businesses whose web presence is the business. There are tools to manage every part of each application, and many apps even provide self-targeted monitoring capabilities. Unfortunately, most tools don't give you the entire picture, and manually stitching together the capabilities of a host of myopic tools is time-consuming. Monitoring the full application requires the ability to monitor the full stack of technologies involved. AppNeta takes advantage of the unique complexity of modern applications by using the path of the request itself as a basis for monitoring, not the individual components. This deep visibility into the application’s code and components, paired with end-to-end visibility over the network and sophisticated external monitoring, gives users unmatched visibility into the full stack powering an application. Request Tracing Though there are many different components to a modern web app, performance starts with an end-user request. In a simple app, this request may only be for a single static page. In a more complex app, a request may return a dynamic page, which requires data from the database, a cache, and even internal/external APIs. Many tools will give visibility into each of these layers individually. Listing the slow queries in the last 30 minutes is valuable, but knowing which page those queries came from is even more valuable. AppNeta ties together the entire request into a trace, so even as you add internal services or APIs, you can keep this link between deep-down bottlenecks and the originating request. Other vendors and tools collect metrics, and may even tie together one or two layers within this stack, but only AppNeta ties together every component in an environment with services built in Java, PHP, Python, .NET and Ruby. Tracing Through “Black Boxes” While there is custom code in those languages at the core of many applications, there are a number of 3rd-party components that support that logical center. This includes databases like MySQL, MongodB, or Riak, caches like Memcache or Redis, and web servers like Apache and Nginx. Web servers in particular are key to the performance of any given request because they have to handle the request for virtually its entire lifetime. Unlike any other tool, AppNeta actually tracks requests through the web server, showing time queued before the backend sees the request, as well as time spent in sending the request back to the user. When there is a mismatch in capacity, this queuing time can be the largest part of the request’s latency. By capturing this time, AppNeta can give unique insight into how well particular web servers perform, especially under spiky or consistently high load. 800.508.5233 | traceview@appneta.com | www.AppNeta.com
  3. 3. What is Full Stack Application Performance Monitoring? A Ruby application, calling a Java application, calling a Java application, which interacts with a SQL database. TraceView ties this into a single request--most tools will capture these as 3 separate requests, with limited visibility between tiers. Rich Visualizations Beyond data collection, metrics are only as useful as the visualizations they create. One major advantage of monitoring simple lines is that they lend themselves to display as a timeseries chart. Trending values are far more valuable than single point-in-time measurements, as context can mean the difference between a 5-minute fix and a 4-hour fix. With rich data sources like traces, though, timeseries charts become limiting. The major issue with them is that they aggregate data into time buckets, typically an average (although sometimes a 90% or 99% percentile line). This process makes it impossible to see exactly why, for instance, a metric spiked to 2x its normal value for 30 seconds. AppNeta’s approach to visualization, using heatmaps, plots all available data, making it easy to select individual outliers, or even see complex patterns like cached / uncached performance in a single chart. No other tools can create this visualization, primarily due to the difficulty in retaining all the data necessary to do so. Because each point represents a single trace, it’s always possible to drill down to the full request, adding context to what would otherwise be a single value. It’s great to know that the reason for the spike in cache latency is a single SET call; it’s even more valuable to see the database query that pulled 2mb of data immediately before that SET. Beyond the Application Code While the code is typically the most complex and error-prone part of a modern web app under ongoing development, it’s not the full story. The full stack consists of the application and the network working together to deliver something of value to the end user. 800.508.5233 | traceview@appneta.com | www.AppNeta.com
  4. 4. What is Full Stack Application Performance Monitoring? Synthetic Transaction Monitoring Most tools concentrate on monitoring inside-out; what is the application generating that we can measure? The other half of monitoring is understanding if the app is doing what it is supposed to be doing. If the server is up, it does not mean the app is working. If the code is running, it does not mean the app is working. If there are real users successfully using the application, it may mean the app is working. To reliably test if a specific use case is working is to test if that feature is working. AppNeta’s synthetic transaction monitoring acts just like a real user, using your application without any side-channel help from inside the app. If anything happens that would stop a real user – e.g. images not loading, CSS broken and overlapping, AJAX failing -- AppNeta can tell you exactly where that workflow failed. The combination of synthetic transactions and Real User Monitoring (RUM) proves that everybody in your app can do what they need to do, and that they are actually doing it quickly. Heatmap of database query latency for the entire DB cluster over the last 24 hours. Includes load on the associated application servers. 800.508.5233 | traceview@appneta.com | www.AppNeta.com
  5. 5. What is Full Stack Application Performance Monitoring? Network Path Visibility Beyond end user issues, AppNeta provides all the tools necessary to drill down into the underlying network. AppNeta’s patented Path technologies actively monitor the network. In the context of an application, this means the confidence to quit chasing ghosts when the network is known to be flaky. Instead of spending days looking for problems that don’t exist, or (worse) ignoring problems that do by pointing to an unreliable network, AppNeta can proactively identify issues in the network. (In fact, AppNeta’s engineering teams gained a lot of respect for Github once we figured out 75% of their availability issues were actually just our office’s ISP losing connectivity, based on a robot’s report). As software and applications continue to get more complex, the answer is not to simply add more monitoring. Monitoring must get more sophisticated, and for all that extra data to mean something, the right tool must bring it all into the same place. AppNeta’s integrated application, network and end user monitoring not only gives deep visibility into the application from multiple angles, but also integrates information about the Full Stack in a way that no other tool can match. About the Author Dan Kuebrich is a web performance geek, currently working on Application Performance Management at AppNeta. He was previously a founder of Tracelytics (acquired by AppNeta), and before that worked on AmieStreet/Songza.com. Read more of Dan’s writings. We promise it’s worth it! More Information For more information about the AppNeta solutions, please visit: www.AppNeta.com 800.508.5233 | traceview@appneta.com | www.AppNeta.com

×