No. Rookout does not have access to your source code and can not alter the business logic of the application itself. We only collect data while your services are running in order to provide you with the debugging information you need.
No. Rookout is suited for debugging backend systems (Java, .NET, Python, NodeJS, or Ruby).
Check out our pricing here.
Rookout limits performance impact by setting limits on both the size of the data and how deep the data is expanded. This section has more details - https://docs.rookout.com/docs/breakpoints-reference.html#object-namespace
Until a specific log/breakpoint request is made, the Rookout SDK loads and listens on a port and consumes no resources - so there is zero overhead. Only once the breakpoint is applied we use bytecode manipulation to add the code responsible for data extraction. This is equivalent to adding logging code manually to your application, except in this case, the logging code is added to your running application directly in memory. The performance cost depends on the amount of data you want to extract. We have built in mechanisms to ensure that if a breakpoint is placed on a particular hot spot in your application, that we will limit the amount of data being collected (to not consume too much resources). We also have built in features to let you focus on collecting the data that is critical to you.
The source code is provided for your eyes only. Rookout does not see your code. The access is required just so that you can easily click on the line you want to instrument.
Currently, there's no way to ask for read-only permissions in Github. We don't need them, but unfortunately, that's what the API forces us to do. If you don't feel comfortable with it, you can use the Rookout Desktop App instead.
Rookout needs to be approved in Github. To do that click on settings → connections→ applications and approve Rookout.
There is a refresh button next to the source code view. It will reupload your code using the Rookout Desktop App.
SHA256 Hash is calculated both in the browser (on the source) and in your deployed app. This calculation is performed in order to make sure the code running in production and the code presented in Rookout’s FE is 100% in-sync. In addition, we send the file’s name and the line number where you applied the rule.
When you choose to upload a source code repository from your local file system, or from a hosted git service such as Github, you will be prompted to download and install the Rookout desktop app.
You may use the Debug Session configuration page to filter and choose a subset of your application instances, or even choose a specific server, container or serverless function.
You may have configuration or network issues. Make sure the Rookout agents have outbound network communication, and that you've set the correct Rookout token.
Right-click the breakpoint and choose the Status option to get a hint as to why you are not getting any data. This page has more details on what each state means.
The Rookout service is not getting data from the agent you’ve installed into your app. It could mean that your app is down, or that it has no network access. It could also mean there is a problem with how you’ve installed the Rookout agent (that is, the Rookout SDK). To get more details about your error, set the environment variable ROOKOUT_DEBUG to True (or 1) from the command line before you start the SDK.
The user settings at the bottom-left corner has a “show token” button.
By default, it is kept for 24 hours. If you prefer that no debug data be sent to the Rookout servers, get in touch with us about installing the enterprise level on-prem option.
As an organisation admin, you can click the “Account Settings” button on the left pane-> Invite New Members -> insert their email and click send. An email invite will be sent to this user.
Rookout provides notifications of any service disruption within an hour on this service portal: https://status.rookout.com
Here you'll find the instructions for each language https://docs.rookout.com/docs/sdk-setup.html
This warning likely means you didn’t bundle your Java source files into the jar (default Java behavior). When you do bundle the sources according to our instructions we will be able to properly notify you when source files change, and even update the breakpoint line numbers according to the change. Regardless, the system may be safely used without this (highly recommended) feature.
Rookout agent syncs its breakpoint in the background so when you’re launching your lambda app for the first time, a potential race exists. It may take up to one second to apply all the breakpoints so you might consider triggering your lambda more than once.
You will find supported versions here: https://docs.rookout.com/docs/sdk-setup.html
No. The debugger/inspector client must be closed before using Rookout.
You need to load deploy Rookout within the workers as described here: https://docs.rookout.com/docs/sdk-setup.html#pre-forking-servers.
Yes! You can find the complete list of supported versions here: https://docs.rookout.com/docs/sdk-setup.html
Rookout does *not* run your app in debug mode. Rookout uses PDB files to correctly place breakpoints in the right location. To do that, Rookout requires your application to be deployed with debug information (Pdb files <DebugType>full</DebugType>).
The optimize flag should not be enabled (<Optimize>false</Optimize>). If the library is optimized it might:
It is likely that the variable was empty because of the depth configurations set. Code may generate resource heavy debug messages (For example, huge strings). To make sure performance isn’t impacted when debugging heavy messages, Rookout sets some limits on how we fetch data. One of these are depth limits. We limit our access to an object by depth. Read more about it here.