Over a million developers have joined DZone.

Beautiful Exceptions: A New Way to View Server Errors

DZone's Guide to

Beautiful Exceptions: A New Way to View Server Errors

· Integration Zone ·
Free Resource

WSO2 is the only open source vendor to be named a leader in The Forrester Wave™: API Management Solutions, Q4 2018 Report. Download the report now or try out our product for free.

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:


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

IAM is now more than a security project. It’s an enabler for an integration agile enterprise. If you’re currently evaluating an identity solution or exploring IAM, join this webinar.


Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}