Debug Staging and Production
Remotely - Simply and Securely
Stay Home. Stay Safe 💜
Responsive Code-Data Layer
Play around with Rookout
Want to see how it works? Just click and play!
Experience Rookout for yourself. No registration or installation needed.
No registration needed
Try our SDK
5 minute setup
Boost Your Process
End-to-end security coupled with a small footprint and zero overhead. Your code never reaches Rookout’s servers.
On prem to serverless
Rookout’s got your back in the cloud, container, Kubernetes, serverless, or on-prem at your customers’ sites.
Bypass complex Dev, DevOps, and BI processes, and instantly pipeline data to APM, alerting and logging tools and more.
Performance-wise, adding a log line with Rookout is equivalent to writing code and redeploying a new version. There is no overhead.
What our users are saying
Rookout gives me and my team the peace of mind to release more frequently, as I know that if there is a problem we will quickly fetch the data we need to troubleshoot it. It helps our developers maintain velocity while staying effective and happy.
My goal was to free up time the team was spending on debugging, so they could use that time more productively, to develop new features or learn new skills. That’s exactly what Rookout allows us to do.
I can envision cases in which it might have taken me several hours of adding log lines and pushing to staging to find errors that I found in minutes with Rookout. I was also pleasantly impressed with the responsiveness of the Rookout team to our questions and requests. Their level of support exceeded our expectations.
Rookout helps me get the debugging data I need in seconds instead of waiting for several hours. As a result, our mean time to resolution (MTTR) for most issues is slashed by up to 80%, which is huge for us.
How it works
TL;DR: Rookout uses bytecode or opcode manipulation to instrument your app on the fly, with zero overhead, risk, or friction.
When you click on a line and set a breakpoint, its configuration (JSON file including file name, line number, and hash) is communicated to all the relevant instances of your app according to your project filter, and all future relevant instances that will spin into existence.
The SDKs within these instances will identify the relevant parts in memory correlating to your target code and add exactly the code needed (ONLY read-only operations) to implement the data collection you’ve asked for. Data will be pipelined out in an asynchronous fashion to a local controller (if installed and configured) or directly to Rookout’s SaaS.
Rookout releases your app as soon as possible to resume normal execution.
Because Rookout applies exactly what you’ve asked for, directly as code - there is no overhead - in fact the overhead is about the same as when you are writing that very code yourself.