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. Without Rookout, a developer needs to go write new code, redeploy, and wait for data in order to debug. What used to often take hours and days can now be done in seconds, allowing devs to skip these long debugging processes and reduce 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.
Collaboration and Handoffs
With Rookout, developers are able to understand any piece of code. Being able to extract the data you need, from any line of code, allows devs to understand their code and makes collaboration and handoffs easier. As a result, Rookout has become a single source of truth; a go-to place for developers to see reality as it is and collaborate on it, thus solving the classic "it works on my machine" problem. Rookout can be used by developers, 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.
Tracing and Profiling
By integrating Rookout with popular Tracing and Profiling platforms, developers can enhance their performance benchmarking and request tracking abilities. Rookout is used to pipe requests and responses to a profiling tool such as Prometheus, allowing developers and DevOps teams to measure performance without waiting for log lines to be added, as well as enhance log lines sent to Tracing tools such as AppDynamics and Datadog. This lets developers track a request through different servers and services without changing code and waiting for a release.
Dynamic Alerting and Monitoring
Developers 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).
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.
On-Demand Analytics and Metrics
We’ve learned developers are not the only ones who need data from running code. Product management, 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
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.