Deploying Code Fast? Here’s How to Tell If You Broke Something

 ● 19th Feb 2015

4 min read

Here at OverOps, we’re in the error tracking business. Each day, OverOps is used to track more than 500,000 errors across hundreds of different companies. The most critical and fragile stage for many apps is just after a new deployment – when code changes are tested for the first time under a high-stress load and with full production settings.

OverOps detects your code changes automatically, and 87% of users report finding new unknown bugs in production via OverOps within the first hour after deploying a new version.
OverOps analyzes your code at the JVM level, and doesn’t rely on pulling log files from your machine. This helps companies collect more data on problems in production with minimal added CPU and IO overhead.

How can you deploy more safely?

  • Track all new server errors – uncaught and caught exceptions, logged errors and HTTP errors. Easily see a list of all errors that occurred for the first time after a new deployment. OverOps automatically identifies new deployments (based on changes to existing code or new code added) and tells you if exceptions were thrown from modified code.
  • Real-time analytics give you all the stats you need to decide whether an error is critical or not.
  • See how new deployments affect your code. Know if an exception that used to happen 10 times a day is now occurring 1000 times a day.
  • Make sure an error you patched was indeed fixed and doesn’t spring up again.

How does it work?

OverOps is a Java agent that monitors all production errors and shows all the code and variable values that led to them. Right after an error is detected, OverOps will display all the data you need to prioritize it and fix it.
Error Analysis in OverOps

See a list of errors that started after a new deployment

For each error, get the following stats:

  • Error location and root location.
  • How many times it happened and the fail rate.
  • Does it involve recently modified code?
  • Which server threw the error

View a sample error analysis right here.

See the exact stack and variable values as they were when the error occurred

OverOps core technology is around creating a full “replay” of each exception. You can see the entire call stack, including 3rd party methods if desired, and click on each method to view the variable values as they were when the exception happened. OverOps records all variable types and captures them up to 5 levels deep in the heap.

Compare an error between different code versions. Know if it happens more often than it used to

OverOps shows you error trends – allowing you to compare the number of errors and fail rates across different deployments. If an error happened multiple times (the usual case), you can view historical records of the same error and compare values, even between different code versions.

Get daily trends summary – know if something bad started

Once a day (or at a frequency you decide) OverOps produces a summary of server errors that might indicate a critical problem for you to review.
These summaries show you a list of new errors that started today and where they’re coming from. Get highlights on errors that have increased dramatically and are now happening more frequently than before.

View errors coming from 3rd party code.

Your code doesn’t exist in a vacuum. Sometimes, the reason for your code breaking lies with changes to 3rd party libraries. In these cases, it can take a long time to understand what happened. In OverOps, you can add monitoring for 3rd party libraries and install it on code bases like Hadoop/Spark/Kafka to discover exception coming from there. If an API becomes unavailable or slows down, you can know right away.
You’re 10 minutes away from discovering unknown errors. Install OverOps now to find them:

Iris is one of OverOps' co-founders and served as VP Product during her time with the company. Her main interests are creative products, data driven marketing and nitpicking small UX details.

Troubleshooting Apache Spark Applications with OverOps OverOps’ ability to detect precisely why something broke and to see variable state is invaluable in a distributed compute environment.
Troubleshooting Apache Spark Applications with OverOps

Next Article

The Fastest Way to Why.

Eliminate the detective work of searching logs for the Cause of critical issues. Resolve issues in minutes.
Learn More