FAQs

search icon
  • Can Rookout change the way our services work?

    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.

  • Is it possible to use Rookout to debug client-side JavaScript?

    No. Rookout is suited for debugging backend systems (Java, .NET, Python, NodeJS, or Ruby).

  • How much does using Rookout cost?

    Check out our pricing here.

  • How does Rookout make sure that performance isn’t impacted when grabbing a frame dump from an application?

    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

  • What is the overhead?

    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.

  • Why does Rookout need access to my source code?

    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.

  • Why do you need write access to Github repos?

    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.

  • Why can't I see my private repos (Github)?

    Rookout needs to be approved in Github. To do that click on settings → connections→ applications and approve Rookout.

  • How do I reupload my source code (local file system)?

    There is a refresh button next to the source code view. It will reupload your code using the Rookout Desktop App.

  • How do you make sure the source code loaded into Rookout's IDE is synced with the code running in the remote environment?

    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.

  • How do I install the Rookout desktop app?

    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.

  • Is there a shortcut to search for a particular file in the Rookout IDE?

    Use Ctrl/Cmd+Shift+f.

  • Is there a way to disable nonrequired instances from the Rookout 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.

  • It says Rookout has failed to connect to the agent. What's going on?

    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.

  • I cannot see any data in the message pane.

    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.

  • I’m stuck waiting for SDK connection, what does that mean?

    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.

  • Where can I find the Rookout token?

    The user settings at the bottom-left corner has a “show token” button.

  • How long is the debug/telemetry data that is sent to Rookout kept?

    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.

  • How can I add users to my organization?

    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.

  • Does Rookout provide notifications of any disruptions to its service?

    Rookout provides notifications of any service disruption within an hour on this service portal: https://status.rookout.com

  • How do I load the Rookout SDK?

    Here you'll find the instructions for each language https://docs.rookout.com/docs/sdk-setup.html

  • What does the error ‘Source file not found’ mean when I’m debugging my Java application?

    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.

  • I'm using Lambda, I've installed your SDK, but can't see any messages.

    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.

  • What version of Node are you supporting right now?

    You will find supported versions here: https://docs.rookout.com/docs/sdk-setup.html

  • Does Rookout work while running Node.js when using the inspector?

    No. The debugger/inspector client must be closed before using Rookout.

  • How can I debug my Celery workers (or uWSGI)?

    You need to load deploy Rookout within the workers as described here: https://docs.rookout.com/docs/sdk-setup.html#pre-forking-servers.

  • What languages and versions does Rookout support? Do you have both Core and Framework?

    Yes! You can find the complete list of supported versions here: https://docs.rookout.com/docs/sdk-setup.html

  • Why does Rookout require running with PDB files? Does it mean it’s running my app in debug mode?

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

  • Does Rookout require running in optimized mode?

    The optimize flag should not be enabled (<Optimize>false</Optimize>). If the library is optimized it might:

    1. Not Work
    2. Give you a partial info of your locals and parameters. 
    We support full release mode (but with not optimized PDB supplied) https://docs.rookout.com/docs/dotnet-setup.html#debug-information

  • A collected variable was presented as empty when it is not. What happened?

    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.

Do We Support Your Tech Stack?

See full list