- What is OverOps?
OverOps was built to help developers understand why their software is ‘misbehaving’ (exceptions, illegal states, thread latency). OverOps does much more than notify about a problem and point to it location. It goes much deeper, into the code. OverOps tells you which variables, conditions and objects in your code are causing the problem, in staging or production. Read more here.
- Can OverOps run on multiple applications/JVMs on single server?
Yes, as long as you attach a OverOps Agent to every application/JVM you bring up.
- I can’t always work online. Does OverOps have an offline option?
OverOps runs as a hosted SaaS application, or can be fully deployed on-premises (available to enterprise users).
- Where are your servers located?
We use AWS east, located in the US.
Which Exceptions and Errors Does OverOps Capture?
OverOps captures all exceptions: caught/uncaught, checked/unchecked. Among errors, OverOps captures only AssertionError.
OverOps captures events in which the user’s code was involved. When capturing exceptions, it captures the method which threw the event, whether it’s the JVM that threw a NullPointerException access, or an explicit throw e statement. OverOps also captures events that belong to the user (see 3rd party code in OverOps) or any method between the throw and the catch.
Because OverOps is a native agent that hooks to the JVM, gaining access to the exception signal, it captures all exceptions, including those caught in the same method.
What Other Events Does OverOps Capture?
OverOps captures all logged warnings and errors generated from your application, usually stated as logger.error or LOG.warn. This is done by adding bytecode instrumentation to all major logging framework, including Log4j, Log4J2, Logback, JUL, Akka logging and more.
OverOps also captures HTTP errors, When HttpServletResponse.sendError is explicitly called.
Which Events Does OverOps Not Capture?
OverOps does not capture:
- Events that are part of class loading mechanisms, as those are too sensitive to record.
- Every instance of the same event. Instead, having gathered initial snapshots, OverOps starts sampling the full snapshot and creates statistics to cause minimum overhead.
- Events from 3rd party applications: If an instance from Spring framework, which is defined by default as a 3rd party application, throws an exception and catches it in the same method, that does not qualify as an event in OverOps.
Installation and Update
- I am trying to install OverOps and facing an issue: “Sorry, user X is not allowed to execute '/opt/takipi/etc/takipi-setup-package...”. What can I do?
You need root access to install OverOps.
- I’m having trouble with the installation, I'm trying to use OverOps for my NodeJS/Python/C#/etc. application…
OverOps was designed for JVM-based languages, such as Java, Scala, JRuby, Clojure, etc. For more information about supported languages, see the OverOps compatibility matrix.
- How do I upgrade OverOps to the newest version?
To upgrade OverOps you need to re-install and then restart the JVMs:
From the top bar the OverOps web application, click Add Servers. No need to uninstall, OverOps automatically re-installs the newest version.
- I need to update OverOps, but I’m afraid this would affect my JVM…
The OverOps update does not affect the JVM, but the update takes place only once the JVM is restarted.
- I appear to have somebody else's data in the dashboard: I see errors in validateMovie and putMoviesInDb functions, one of the movies is Iron Man 3 according to the variable listing.
The OverOps dashboard comes with two sample events, that are labeled with a big purple ‘samples’. These events are intended to help new users understand how to use OverOps. You can hide these events, so they won’t appear in the main view of the dashboard.
- I have an exception which is caught and handled correctly, and I want to mark it as such. What is the correct way?
OverOps allows users to hide errors, in situations exactly like this. This way OverOps will not capture or handle this exception going forward.
- What is the correct way to mark an exception which is caught and handled correctly?
OverOps allows users to hide errors, that are being handled correctly. When hidden, OverOps does not capture these errors in the future.
- I am trying to customize the dashboard to show errors for just one JVM, but this view is not saved between sessions. Do I need to re-set this every time?
OverOps allows users to customize preset filters, so that you can navigate quickly and comfortably between different Views. Using the preset filters, you can make more elaborate filtering, combining several categories (i.e. error type, time frame, JVM/server…). To learn more, click here.
- How can I find events by the message of the exception?
Yes, you can use the search tab in the upper-right corner of the dashboard.
The Error Analysis Screen
- Some fields in the variable table are without values. Why is that?
OverOps automatically redacts personal information. You can control the classes and code identifiers from the web application, from the Settings -> Security dialog box. To learn more, click here.
- How can I capture multiple stack traces at once?
You can only view the entire stack trace for any event, in the Error Analysis screen, but all the information is gathered across all the events in your dashboard.
- Clicking on the OverOps log link in the log file takes me to a different error than the one in the log
OverOps knows how to relate between a logged event (log error/warning) and the exception that caused it. In order to help you reach the root cause quickly, clicking on a log link in an event, you will be directed to the exception that caused it.
Settings and Configurations
- How can I make another team member an admin?
Admins can be added in the Manage Teammates section. Note, that there is only one Owner per OverOps service. To change Owners contact OverOps support.
- How do I stop email alerts to a specific email?
Email alerts are user specific. Login with your email and uncheck Send daily emails from Settings -> Alert Settings.
- How can I change the name of my server?
You can name both the JVM and the server. To learn more, click here.
Security and Performance
- Can I redact variables when they are stored in a Java hashmap?
You can choose which variables to redact by using our PII redaction module, under
Settings -> Security. To learn more click here.
- I am scared to use this, looks like OverOps can see all my code, properties, etc…
OverOps cannot see your code, we only access the part of the code that is relevant to the exceptions and errors. Regardless, nothing ever leaves your server without first being encrypted with your own private key. OverOps is running on production applications with highly sensitive information (banks, health care apps, etc). OverOps also offers a full on-premises solutions for enterprise users. To learn more about security protocols, click here.
- I'm looking at an exception in which the number next to the target says 162 times, but the actual dropdown to select exception instances only has 49/49. Why is that?
The way OverOps keeps performance overhead so low, is that for each exception or error, we take snapshot of the code and state only for some of the occurrences of an event, sampling it, according to an algorithm. The event is captured when it first appears, but when it exceeds the 1 Million times in the first hour, OverOps reduces the snapshots to samples.