Debug Source Code in Real Time With Rookout's Datadog App | Datadog

Debug source code in real time with Rookout's Datadog App

Author Jordan Obey

Published: January 10, 2022

Earlier this year we launched Datadog Apps, which seamlessly integrate functionality from third-party tools into Datadog’s centralized monitoring platform. This project has enabled us to collaborate with some of our partners, such as PagerDuty and LaunchDarkly, to extend the Datadog UI and provide our customers with new solutions for incident management, feature flag optimization, and more.

Now, we’re pleased to announce the release of the Rookout Datadog App, which is available for installation from the Datadog integrations page. Rookout is a cloud-native data collection and debugging solution that enables developers to investigate production code in real time. Whereas traditional debuggers often require you to halt your applications so you can run them in “debug mode,” Rookout’s non-breaking breakpoints allow you to troubleshoot and debug live environments without redeploying your application or including any additional code. This is especially useful to teams running Kubernetes and serverless applications whose complexity and ephemerality make traditional debugging challenging.

In this post, we’ll look at how the Rookout Datadog App unifies your end-to-end monitoring and real-time debugging workflows by allowing you to add non-breaking breakpoints and visualize code-level metrics from your Datadog dashboards. These capabilities can help you determine the impact of your code’s health on your application’s overall performance, so you can resolve issues quickly.

Forward code-level metrics from non-breaking breakpoints to Datadog

The Rookout Datadog App enables you to contextualize application issues by bringing code-level visibility to any Datadog dashboard. After you install the App from the Marketplace, your dashboard widgets will include an option to add Rookout breakpoints throughout your source code. These breakpoints will send code-level metrics directly to your account, enabling you to make correlations that can guide your troubleshooting.

For example, let’s say you’re monitoring a serverless ecommerce application and you receive a notification that the microservice responsible for adding and removing items from customer carts is experiencing a spike in memory usage. With the Rookout Datadog App, you can open Rookout’s web IDE by clicking on your memory usage graph and choosing “set metric points” from the dropdown menu. From here, you can add Datadog as a Rookout “Target”, which tells Rookout where to forward metrics, and quickly set non-breaking breakpoints on the portions of your source code you want to investigate. Rookout will then forward custom code-level metrics to Datadog, which you can visualize within your dashboard.

rookout_ide.png
Rookout's web IDE allows you to set non-breaking break points in your source code for live code-level troubleshooting.

Rookout metrics are automatically tagged by the line number of the source code that generated them, which can help you identify factors that may be contributing to the spike in memory usage. In this case, we can see that the function on line 47, which adds items to carts, is the only function being invoked; the function on line 52, which removes items on carts, remains inactive. This information suggests that carts aren’t being emptied after users place their orders, leading to unexpected memory usage.

Datadog's Rookout integration allows you to set breaking points and generate custom metrics.

Keep track of your Rookout breakpoints

The Rookout Datadog App also includes a custom dashboard widget (available from the “Apps” section of the widget dropdown menu) that displays all of the breakpoints you’ve set on your source code. This list provides a bird’s-eye view of the file paths and line numbers associated with your live debugging data, allowing you to easily gauge your Rookout workload by monitoring the number of breakpoints it’s listening to.

Dive into your Rookout breakpoints for a bird's-eye view of the file paths and line numbers associated with your live debugging data.

Clicking on any breakpoint will redirect you to its corresponding source code, so you can quickly start troubleshooting the portions of your application where an issue may have originated.

Start collecting live debugging data today

Rookout’s Datadog App enables you to ingest real-time debugging data—and view it alongside telemetry from across your stack—without restarting your application or adding additional source code. The Rookout Datadog App is currently available for Go, .NET, Java, Node.js, Python, and Ruby applications. To get started, you can subscribe to Rookout from the Datadog Marketplace, and then install the App from our integrations page.

The ability to promote branded monitoring tools in the Datadog Marketplace is one of the benefits of membership in the Datadog Partner Network. Interested in developing an integration or application for the Datadog Marketplace? Contact us at marketplace@datadog.com.

If you’re not already a Datadog customer, sign up for a 14-day .