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