StackDriver Debugger Is Out – What’s Next For You?
If you have been a long-time user of the Google Cloud Platform, you’re likely familiar with the StackDriver suite of Observability and Operations tools. The most unique part of that suite was Google’s StackDriver Debugger, which was designed to debug live code in cloud and production environments with a click of a button.
Unfortunately, StackDriver has been renamed as Google’s Operations suite, and the Debugger has been deprecated. If you can’t live – or code – without the StackDriver Debugger or are simply looking to explore the concept, then Rookout might be exactly what you’re looking for.
Of course, Rookout and StackDriver are not identical, so there will be a few things that change as you make the move. Let’s dive in:
Runtime Support
StackDriver has focused on languages, runtimes, and operating systems popular in Google Cloud, and especially in Google App Engine. Rookout, on other hand, takes things further, offering full Live Debugging capabilities across six runtime environments (JVM, .Net, Node, Python, Ruby, Go), for a wide variety of environment versions. Additionally, Rookout offers full support for all major Operating Systems, including Windows, OS X, and most Linux distributions, including Alpine.
Performance and Quality
Building a live debugging agent is a tough engineering task, and only the Java and Python libraries ever made it out of Beta. With Rookout, all of our agents are production-grade, working with fully-optimized code, offering lightning-fast snapshot capture and multiple layers of protection against performance impact, and have been heavily tested for memory leaks and other edge cases.
User Experience
Debugging a live cloud application is no small task, and more often than not, success depends on coming prepared. At Rookout, when working with our customers, we have learned that selecting the right instance(s) to debug and correctly identifying the source code revisions they are running is half the battle.
To facilitate that, Rookout supports advanced slice and dice controls to dig deep into your applications, select precisely the instances you need, and automatically fetch the source code for you.
What’s next?
If you have been using StackDriver Debugger, you have already gone through the nitty-gritty details of setting up a Live Debugger. Lucky for you, Rookout can be installed very similarly to StackDriver, and you can probably swap it in in a matter of minutes. Let’s get to it!
Python
Just like StackDriver, Rookout uses a Python package available on PyPi. Change your dependency from “google-python-cloud-debugger” to “rook” and initialize it:
import rook
rook.start(
token="[Your Rookout Token]",
labels={"env": "dev"}
)
Node
Just like StackDriver, Rookout uses a Node package available on npm. Change your dependency from “@google-cloud/debug-agent” to “rookout” and initialize it:
const rookout = require('rookout')
rookout.start({
token: '[Your Rookout Token]',
labels: {
env: 'dev'
}
}).then(/*Start your application here*/)
Ruby
Just like StackDriver, Rookout uses a Ruby package available on PyPi. Change your dependency from “stackdriver” to “rookout” and initialize it:
require "rookout"
::Rookout.start token: "[Your Rookout Token]", labels: {env: "dev"}
.Net
For .Net, Rookout uses a simple NuGet package. No worrying about custom Docker images 🙂
using Rook;
Rook.RookOptions options = new Rook.RookOptions()
{
token = "[Your Rookout Token]",
labels = new Dictionary<string, string> { { "env", "dev" } }
};
Rook.API.Start(options);
Java
For the JVM, Rookout uses a java agent instead of an agentlib (better compatibility!), so just set it up on your environment:
curl -L "https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.rookout&a=rook&v=LATEST" -o rook.jar
export JAVA_TOOL_OPTIONS="-javaagent:$(pwd)/rook.jar -DROOKOUT_TOKEN=[Your Rookout Token]"
So, what are you waiting for?
Google will be sunsetting the StackDriver Debugger by the middle of May 2023. The end of life for the open-source CLI-only version is the end of August 2023.
It’s time to roll up your sleeves and start the migration process. Enough said.
If you have any questions, don’t hesitate to reach out. Happy debugging 😉