Live Debugger is a live data collection app that gives you instant access to the code-level data you need to troubleshoot and debug quickly in any environment, from development to production, whether in the cloud, on-premises, or in Kubernetes.
Access the necessary and relevant data without adding additional code, waiting for redeployment, or attempting to reproduce issues locally.
Using non-breaking breakpoints, instantly see the complete state of your application, including stack trace, variable values, and more, all without stopping or breaking your running code.
Billing
Live Debugger is billed through the Code Monitoring DPS capability, measured in container-hours. This billing unit applies to both containerized and non-containerized (host-based) workloads—containerization is not required to use Live Debugger.
Prerequisites
Dynatrace SaaS environment with a Dynatrace Platform Subscription (DPS) that includes Code Monitoring
OneAgent version 1.309+ with Java Live-Debugger and Node.js Live-DebuggerOneAgent features enabled
Monitoring modes: Full-Stack, Infrastructure, or Discovery (with container code-module injection)
1 of 3Real-time snapshot of debug data created once a non-breaking breakpoint has been triggered.
Activate the Live Debugger feature
To activate the Live Debugger feature
Go to Settings > Collect and capture > General monitoring settings > OneAgent features.
Turn on Java Live-Debugger, Node.js Live-Debugger, or both, depending on your needs.
Restart any process that is affected.
Enable Observability for Developers
Enablement can be scoped from the environment level down to individual entities. Use the Settings to configure entities, or the Live Debugger app to manage all entities at once.
Environment level
Go to Settings.
On the environment level, go to Collect and capture > Observability for Developers > Enable Observability for Developers.
Expand the banner at the top of the page, and select either Enable for entire tenant or Disable for entire tenant.
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Expand the banner at the top of the page, and select either Enable for entire tenant or Disable for entire tenant.
Process group
Go to Settings.
In the upper-left corner of the page, select Go to entity.
Filter by type and select the process group you want to configure.
Go to Collect and capture > Observability for Developers > Enable Observability for Developers.
Turn off Disable Observability for Developers.
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Go to the Process Groups tab and use the filter field to find the specific process group.
Turn on the toggle in the Enabled column.
Kubernetes cluster
Go to Settings.
In the upper-left corner of the page, select Go to entity.
Filter by type and select the Kubernetes cluster you want to configure.
Go to Collect and capture > Observability for Developers > Enable Observability for Developers.
Turn off Disable Observability for Developers.
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Go to the Kubernetes Cluster tab and use the filter field to find the specific cluster.
Turn on the toggle in the Enabled column.
Kubernetes namespace
Go to Settings.
In the upper-left corner of the page, select Go to entity.
Filter by type and select the Kubernetes namespace you want to configure.
Go to Collect and capture > Observability for Developers > Enable Observability for Developers.
Turn off Disable Observability for Developers.
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Go to the Kubernetes Namespace tab and use the filter field to find the specific namespace.
Turn on the toggle in the Enabled column.
Host group
Go to Settings.
In the upper-left corner of the page, select Go to entity.
Filter by type and select the host group you want to configure.
Go to Collect and capture > Observability for Developers > Enable Observability for Developers.
Turn off Disable Observability for Developers.
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Go to the Host Groups tab and use the filter field to find the specific host group.
Turn on the toggle in the Enabled column.
Kubernetes deployment
Go to Live Debugger.
In the upper-right corner of the page, select (Settings) > Enable Observability for Developers.
Go to the Kubernetes Deployment tab and use the filter field to find the specific deployment.
Turn on the toggle in the Enabled column.
The following permissions are required:
Action
Required permission
View status
settings:objects:read
Change configuration
settings:objects:write
Enable Live Debugging in ActiveGate
ActiveGate version 1.311+
An ActiveGate isn't strictly required for Live Debugger to work, but it significantly streamlines the process, especially in Kubernetes environments. It allows you to reduce your interaction with Dynatrace to one single point, which is available locally. Besides convenience, this solution optimizes traffic volume and reduces the complexity of the network and cost.
Host-based deployments
The Live Debugger module is enabled by default for host-based ActiveGate deployments starting from ActiveGate version 1.311.
Kubernetes Operator deployments
For Kubernetes Operator deployments, enable the Live Debugger module via the ActiveGate capabilities section in the DynaKube configuration.
To enable the Live Debugger module
Set debugging capability in the DynaKube.yaml file.
activeGate:
capabilities:
- debugging
If you're using a proxy, configure it within the Environment ActiveGate as described in Proxy for ActiveGate.
Start live debugging an application
To start a live debugging session
Go to Live Debugger.
Select (Debug Configuration) under the app header to open the Customize your debug session overlay.
Scope the instances you would like to debug.
Add one or more filters from the facets list.
Choose a filter within the application properties.
Fetch source code
Each debug session must contain the application source code you're about to debug. Live Debugger lets you quickly load sources from your local file system and various Git providers. When you integrate your source code into Live Debugger, it remains between your code repository and your local browser.
There are two main ways to import your source code:
Automatic fetching
Manual fetching
Automatic fetching
Live Debugger can connect to a repository and automatically fetch the source code for the selected instance.
Your repository can be automatically fetched for the selected instance based on your Git permissions if your admin has already set it up.
Live Debugger lets you easily load your relevant source code into the application. Select under Source Code to open a list of the supported Git providers from which you can fetch sources.
Git on-premises integration
Live Debugger integrates directly with the cloud editions of the following Git providers, both on-premises and SaaS:
GitHub
Bitbucket
GitLab
Azure DevOps
To enable Live Debugger to integrate with your on-premises or locally hosted Git provider
Live Debugger includes a desktop application (Dynatrace Desktop app) that can access source repositories from your local file system. This allows you to fetch source code from locally hosted Git providers.
Windows: Versions 7, 8, and 8.1 aren't supported.
MacOS: All versions are supported.
Under Source Code, select > Local Filesystem.
Select Download desktop app to get the installation file for the Dynatrace Desktop app.
Install the app according to the instructions in your operating system.
Place a non-breaking breakpoint
To get real-time code-level data
Select the service you want to debug.
Navigate to the file system.
Set a non-breaking breakpoint on the line of code you want to debug.
Non-breaking breakpoints are reference breakpoints for the lines of code from which you want to collect debug data. These breakpoints don't stop your code from running. Instead, they carry the debug data collection request. Placing these breakpoints and receiving the derived snapshots don't affect your application or its users.
After placing a non-breaking breakpoint, ensure your code has been triggered so that the data is collected and appears immediately in Live Debugger.
See the debug data
Once the non-breaking breakpoint is triggered, the collected data is displayed in the Snapshots Pane at the bottom of Live Debugger.
Select the required snapshot to view the following information:
All local variables and their values.
Process information.
Complete stack trace leading to the breakpoint.
Tracing information from the running application.
You can also debug code up the stack from the stack trace view, including third-party components.
Concepts
Application Observability
The inability to access code-level data on demand is a challenge that most developers face when troubleshooting and debugging application issues. Instead, they have to go through long deployment cycles and investigation of logs to find the relevant data they need to understand what's going on in their running code.
Live Debugger
Live Debugger is a debugging and live data collection solution that gives instant access to the code-level debug data you need to troubleshoot and understand complex, modern applications with no extra coding, redeployments, or restarts.
You can use Live Debugger in any environment, from development to production, and at any time, to instantly access the real-time data needed to get to the root cause of issues faster.
Dynamic logging
Developer teams often try to log as much as possible, as they're often not sure what data will be needed to debug an issue. This generates many unneeded logs and horrid signal-to-noise ratios.
By shifting their logging mindset to Live Debugging, teams can reduce logging costs and, most importantly, the heavy effort required to support intense logging pipelines and cleanups.
Development collaboration
Collected debug data can be shared among team members when debugging application issues. This allows team members to have their own view of collected debug data and share that data with other team members for improved collaboration.
As a result, Live Debugger can become a single source of truth, the go-to place for developers to see reality as it is and collaborate on it.
On-demand trace inspection
Live Debugger collects an object representation of traces used by your application. Developers can then correlate captured debug data with tracing data from your application.
Dev training and onboarding
Understanding new code can be challenging. It's twice as tricky when it's legacy code or, as often occurs, code written by someone else.
Live Debugger lets developers speed up their learning process by allowing them to observe unfamiliar code running in its native environment.
Use cases
Capture real-time debug data
Instantly understand the state of your application using non-breaking breakpoints and get instant output, including your full stack trace, local and global variables, tracing data and context, and server metrics (CPU, memory, time measurements, and more).
Troubleshoot faster
Instantly debug the most complex flows.
Fix bugs with zero friction, overhead, or risk.
Get real-time data without stopping your app.
Gain visibility into third-party dependencies and overcome debugging challenges from using open source components, external dependencies, or your legacy code.
Dev-friendly debugging experience
Empower your developers with on-demand access to code-level data.
Get full visibility into your code with a simple and intuitive experience.
Optimize R&D efficiency: Spend less time fixing bugs and more time developing value for your organization and customers.
Never leave your comfort zone with the choice of either an IDE plugin or the Live Debugger web app.
Test and optimize your code faster
Instantly understand if specific line of code was reached at all with exploratory analytics