Welcome!

SOA & WOA Authors: Liz McMillan, Frank Huerta, Sandi Mappic, Adrian Bridgwater, Michael Thompson

Related Topics: Java, XML, SOA & WOA, .NET, Open Source, AJAX & REA

Java: Article

Introducing a New Look for Traces

Trace Details, redesigned

Our fundamental unit of performance data is the trace, an incredibly rich view into the performance of an individual request moving through your web application. Given all this data and the diversity of the contents of any individual trace, it’s important to have an interface for understanding what exactly was going on when a request was served. How did it get handled? What parts were slow, and what parts were anomalous?

Over the past year, the TraceView team has been listening to your thoughts on this topic as well as hatching some of our own. Today we get to share the fruit of our labors: Trace Details, redesigned.

RUM, meet trace details.

RUM + trace details = crazy delicious

Trace details and RUM are old friends, so it’s no surprise they’re here together now.  But there are a few details that might be surprising to you:

  • Using full-page caching (eg. Varnish, WP Super Cache, …)?  Now you can measure cache effectiveness by seeing the # of cached pageviews for each generated page, both here and in the end-user dashboard.
  • Get more details about the client-side performance of the page (why did this take so long to render in the user’s browser?) by triggering a webpagetest.org test for full waterfall + video comparisons!

Context is everywhere.
Have you ever wondered: was this request slow because the app server was under high load when it was served?  How does this query perform normally, does it always take this long?  Traces are now immersed in the full context of your app, from host health at the time of the transaction to the typical execution patterns of individual queries and RPCs.

Host metrics, now in context!

Minimize your critical path.
A trace can traverse many layers of your stack across different processes, hosts, and even datacenters.  Now it’s easy to toggle between viewing the full-stack trace structure and focusing on the critical path of the request.

Natural 20!

Improved asynchronous trace visualization.
You might use asynchronous data processing to get higher concurrency or parallelize data lookups during a request.  We were thinking of you when we improved your display of asynchronous request processing – now it’s super easy to find out where the long tail of your fanout is.

concurrency

Per-call polish–now with 50% more keyboard nav!
Selecting a part of your traced transaction now yields custom-tailored display, including niceties like SQL formatting.  Click through to view the backtrace at time of query or the performance of this query over the past 24 hours.  And want to step through the request, replaying its path through your stack?  Just use the left and right arrow keys on your keyboard!

Query details.

But wait, there’s more!
We’ve improved a bunch of other stuff as well, both in the presentation and under the hood.  Already tracing?  Quit reading and click here right now to see a random trace from your app with the new UI!  Looking to get started?  Sign up and get to this view in 5 mins or less!

Related Articles

Using TraceView to Identify and Solve Query Loop Problems

TraceView Data API

Tracing Black Boxes I: JMX Insight Into JVM Performance

More Stories By Dan Kuebrich

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.