Get any data you need from any line of code. Instantly.
Ship better software, faster
Accelerate Your Team's Velocity
Code doesn’t always behave as you expect it to and your team
is spending too much time to understand why
What can you do with Rookout?
Live Debugging: Production, Dev, and Staging
Rookout speeds up the debugging process in dev, staging, and production. What used to often take hours and days can now be done in seconds, thus reducing debugging time by up to 80%. This translates to hours of time saved, as well as allowing devs to focus their efforts on value creating tasks, rather than maintenance tasks.
Dev Collaboration and Handoffs
With Rookout devs see each others’ work side by side, and avoid stepping on their teammates’ toes. It allows teams to run separate yet sharable views on top of the software. As a result, Rookout has become a single source of truth; a go-to place for devs to see reality as it is and collaborate on it, thus solving the classic "it works on my machine"saga. Rookout can be used by devs, SREs and Support Engineers, who can all share views and create better handoff flows.
Dev teams often suffer from logging-FOMO (Fear of Missing Out): trying to log everything all the time. This generates a significant amount of garbage logs and horrid signal/noise ratios. By shifting their logging mindset to Rookout, teams reduce FOMO, logging costs, and most importantly the heavy labor required to support intense logging pipelines and cleanups.
On-Demand Pinpoint Profiling
Metadata can be just as important as the data itself. Devs use Rookout to explore areas where they have performance concerns and pinpoint the exact line that impacts performance.
By connecting Rookout to existing tracing solutions, developers have not only been adding log lines but also full-stack traces with new spans.
Dynamic Alerting and Monitoring
Devs use Rookout as an effective alert management channel. By combining Rookout's dynamic nature with its ability to pinpoint services/flows and drive data into any platform, devs create on-demand alerts, and on-the-fly targeting of specific errors, usage patterns, user sessions, and more. They then view the data in their interface of choice (e.g. Slack, Sumo-logic, Datadog, Pagerduty).
Dev Training and Onboarding
Diving into new code is hard. It is twice as hard when it is legacy code, or in general, code written by someone else. Rookout allows devs to speed up their learning process by letting them observe the unfamiliar code “in the wild”: as it's running live in its true surroundings.
We’ve learned devs are not the only ones who need data from code. Product, Marketing, Sales, BI, and others, want that data too. Rookout saves developers coding time by collecting the data their colleagues need. Some non-dev professionals and teams can even use Rookout on their own, easily collecting data points.
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
Your code never reaches our servers. In prod, staging, and dev, Rookout keeps all data processing and storage within your network.
On prem to serverless
Rookout’s got your back in the cloud, container, Kubernetes, serverless, or on-prem at your customers’ sites.
No more waiting for deployments. Optimize your developer's time and instantly pipeline data to APM, alerting, logging tools, and more.
In terms of performance, adding a log line with Rookout is equivalent to adding a log statement in code.
What our customers are saying
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.
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.