Over a million developers have joined DZone.

Beautiful Exceptions: A New Way to View Server Errors

· Integration Zone

Learn how API management supports better integration in Achieving Enterprise Agility with Microservices and API Management, brought to you in partnership with 3scale

Here at Takipi we're in the error tracking business. Each day we track more than 500,000 errors coming from hundreds of different companies. Errors across different machines, multithreaded errors, errors involving 3rd party libraries, you name it. Our goal building Takipi was to track code that led to errors and slowdowns. We dreamed of a place where we could view information that was not available before, even in log files.

 

Dreams Do Come True - Our New Errors Viewer

Takipi records variable values as they were in each frame of the stack. We were looking for a way to allow users to easily scan the stack and spot the variables that caused the error. How cool would it be, we thought, if we could scan the code that led to an error with a single scroll? Pretty cool. So we built it - A new way to view server errors:

rec1

Looking Inside the Monster

On the left of this new screen you can see the call stack that led to an exceptions or a logged error (screenshot below). Frames with a glasses icon represent frames with recorded variables. To reduce noise, Takipi only records variable values that might have led to the error. Frames marked with a pencil icon contain code that was recently modified. Since new bugs often crawl out of new code, highlighting these parts can help tracking them. If one machine invoked an API call on another machine which caused an error, you'll be able to see the entire path. The cross-machine analysis works if you're sending an HTTP request using Java’s standard APIs or any popular 3rd party library. 
The stack trace


The Prime Suspects

Scooting over to the right - the prime suspects. Here you can see your code and get the exact variable values that led to each error as they were when it happened. Quickly scroll over all the methods that led to the error. Recorded variables are highlighted and when hovering you can see the variable value as it was at the moment of the error. If it's a complex object with fields, you can view them as well. How do we display code? To provide max security for source code, Takipi encrypts the user’s code using a 256-bit secret AES key that can be generated locally. 
The code and variables


The Rest is History

If this exception happened more than once you can toggle between different recordings and compare the stack and variable values. For exceptions that happen dozens, hundreds, thousands or millions of times, we limit the recordings to a few dozen in order to keep the overhead minimal. 
History
To salute your awesomeness and interest in our new concept, we are offering an extended two-month trial for users who register from this post on DZone. What about slowdowns? Good thing you asked. We're currently designing Takipi slowdown analysis: building a new concept for highlighting code which led to slowdowns. If you’d like to review it in a closed beta and give us some feedback, contact us at hello@takipi.com. It’s super interesting - promise! 

Unleash the power of your APIs with future-proof API management - Create your account and start your free trial today, brought to you in partnership with 3scale.

Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}