10000 Adding new Live Debugger doc (#28365) · DataDog/documentation@77924c3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 77924c3

Browse files
sstonehill12tylfindomalessi
authored andcommitted
Adding new Live Debugger doc (#28365)
* Adding new Live Debugger doc * Fixed create logs section * Wording and styling changes * Removed word 'probe' * Apply suggestions from code review Co-authored-by: Tyler Finethy <tyler.finethy@datadoghq.com> * Many changes to Live Debugger sections * Minor formatting and wording changes * Add Live Debugger to side nav menu * Add limited preview callout * Update default session time period to 48 hours * Apply suggestions from code review Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> * minor tweaks and move live debugger page into tracing directory * fix menu items * capitalize limited preview * minor copy edits * Update content/en/tracing/live_debugger/_index.md * Updated beta callout with google form and minor changes to enable-disable section * Apply suggestions from code review * Apply suggestions from code review * Changes to address Omer's remaining open comments * Apply suggestions from code review Resolved final open comments from Omer * Fix permissions bold formatting within alert div --------- Co-authored-by: Tyler Finethy <tyler.finethy@datadoghq.com> Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com> Co-authored-by: Dominique Alessi <dominique.alessi@datadoghq.com>
1 parent 196c1ef commit 77924c3

File tree

2 files changed

+187
-22
lines changed

2 files changed

+187
-22
lines changed

config/_default/menus/main.en.yaml

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3862,116 +3862,121 @@ menu:
38623862
identifier: dyninst_explang
38633863
parent: dyninst
38643864
weight: 902
3865+
- name: Live Debugger
3866+
url: tracing/live_debugger/
3867+
identifier: live_debugger
3868+
parent: tracing
3869+
weight: 10
38653870
- name: Error Tracking
38663871
url: tracing/error_tracking/
38673872
parent: tracing
38683873
identifier: tracing_error_tracking
3869-
weight: 10
3874+
weight: 11
38703875
- name: Error Tracking Explorer
38713876
url: tracing/error_tracking/explorer
38723877
parent: tracing_error_tracking
38733878
identifier: tracing_error_tracking_explorer
3874-
weight: 1001
3879+
weight: 1101
38753880
- name: Issue States
38763881
url: tracing/error_tracking/issue_states
38773882
parent: tracing_error_tracking
38783883
identifier: tracing_error_tracking_states
3879-
weight: 1002
3884+
weight: 1102
38803885
- name: Error Grouping
38813886
url: tracing/error_tracking/error_grouping
38823887
parent: tracing_error_tracking
38833888
identifier: tracing_error_tracking_error_grouping
3884-
weight: 1003
3889+
weight: 1103
38853890
- name: Monitors
38863891
url: tracing/error_tracking/monitors
38873892
parent: tracing_error_tracking
38883893
identifier: tracing_error_tracking_monitors
3889-
weight: 1005
3894+
weight: 1105
38903895
- name: Identify Suspect Commits
38913896
url: tracing/error_tracking/suspect_commits
38923897
parent: tracing_error_tracking
38933898
identifier: tracing_error_tracking_suspect_commits
3894-
weight: 1006
3899+
weight: 1106
38953900
- name: Exception Replay
38963901
url: tracing/error_tracking/exception_replay
38973902
parent: tracing_error_tracking
38983903
identifier: tracing_error_tracking_exception_replay
3899-
weight: 1007
3904+
weight: 1107
39003905
- name: Troubleshooting
39013906
url: error_tracking/troubleshooting
39023907
parent: tracing_error_tracking
39033908
identifier: tracing_error_tracking_troubleshooting
3904-
weight: 1008
3909+
weight: 1108
39053910
- name: Data Security
39063911
url: tracing/configure_data_security/
39073912
parent: tracing
39083913
identifier: tracing_data_security
3909-
weight: 11
3914+
weight: 12
39103915
- name: Guides
39113916
url: tracing/guide/
39123917
parent: tracing
39133918
identifier: tracing_guides
3914-
weight: 12
3919+
weight: 13
39153920
- name: Troubleshooting
39163921
url: tracing/troubleshooting/
39173922
parent: tracing
39183923
identifier: tracing_troubleshooting
3919-
weight: 13
3924+
weight: 14
39203925
- name: Tracer Startup Logs
39213926
url: tracing/troubleshooting/tracer_startup_logs
39223927
identifier: tracing_troubleshooting_startup_logs
39233928
parent: tracing_troubleshooting
3924-
weight: 1301
3929+
weight: 1401
39253930
- name: Tracer Debug Logs
39263931
url: tracing/troubleshooting/tracer_debug_logs
39273932
identifier: tracing_troubleshooting_debug_logs
39283933
parent: tracing_troubleshooting
3929-
weight: 1302
3934+
weight: 1402
39303935
- name: Connection Errors
39313936
url: tracing/troubleshooting/connection_errors
39323937
identifier: tracing_troubleshooting_connection_errors
39333938
parent: tracing_troubleshooting
3934-
weight: 1303
3939+
weight: 1403
39353940
- name: Agent Rate Limits
39363941
url: tracing/troubleshooting/agent_rate_limits
39373942
identifier: tracing_troubleshooting_rate_limits
39383943
parent: tracing_troubleshooting
3939-
weight: 1304
3944+
weight: 1404
39403945
- name: Agent APM metrics
39413946
url: tracing/troubleshooting/agent_apm_metrics
39423947
identifier: tracing_troubleshooting_apm_metrics
39433948
parent: tracing_troubleshooting
3944-
weight: 1305
3949+
weight: 1405
39453950
- name: Agent Resource Usage
39463951
url: tracing/troubleshooting/agent_apm_resource_usage
39473952
identifier: tracing_troubleshooting_agent_usage
39483953
parent: tracing_troubleshooting
3949-
weight: 1306
3954+
weight: 1406
39503955
- name: Correlated Logs
39513956
url: tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel
39523957
identifier: tracing_troubleshooting_correlated_logs
39533958
parent: tracing_troubleshooting
3954-
weight: 1307
3959+
weight: 1407
39553960
- name: PHP 5 Deep Call Stacks
39563961
url: tracing/troubleshooting/php_5_deep_call_stacks
39573962
identifier: tracing_troubleshooting_php_5_deep_call_stacks
39583963
parent: tracing_troubleshooting
3959-
weight: 1308
3964+
weight: 1408
39603965
- name: .NET diagnostic tool
39613966
url: tracing/troubleshooting/dotnet_diagnostic_tool
39623967
identifier: tracing_troubleshooting_dotnet_diagnostic_tool
39633968
parent: tracing_troubleshooting
3964-
weight: 1309
3969+
weight: 1409
39653970
- name: APM Quantization
39663971
url: tracing/troubleshooting/quantization
39673972
identifier: tracing_troubleshooting_quantization
39683973
parent: tracing_troubleshooting
3969-
weight: 1310
3974+
weight: 1410
39703975
- name: Go Compile-Time Instrumentation
39713976
url: /tracing/troubleshooting/go_compile_time
39723977
identifier: tracing_troubleshooting_go_instrumentation
39733978
parent: tracing_troubleshooting
3974-
weight: 1311
3979+
weight: 1411
39753980
- name: Continuous Profiler
39763981
url: profiler/
39773982
pre: profiling-1
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: Live Debugger
3+
further_reading:
4+
- link: "/dynamic_instrumentation/"
5+
tag: "Documentation"
6+
text: "Dynamic Instrumentation"
7+
- link: "/dynamic_instrumentation/expression-language/"
8+
tag: "Documentation"
9+
text: "Dynamic Instrumentation Expression Language"
10+
- link: "/dynamic_instrumentation/sensitive-data-scrubbing/"
11+
tag: "Documentation"
12+
text: "Sensitive Data Scrubbing"
13+
- link: "/dynamic_instrumentation/symdb/"
14+
tag: "Documentation"
15+
text: "Autocomplete and Search (Preview)"
16+
- link: "/tracing/error_tracking/execution_replay"
17+
tag: "Documentation"
18+
text: "Execution Replay"
19+
---
20+
21+
{{< beta-callout-private url="https://www.datadoghq.com/product-preview/live-debugger/" >}}
22+
Live Debugger is in Limited Preview. Request access to join the waiting list.
23+
<br>
24+
To submit questions, feedback, or requests related to Live Debugger, fill out <a href="https://docs.google.com/forms/d/e/1FAIpQLSdM9SV4fxrM_OvQ2CtI7CMl7evN0jasFb6X1QiPAbW6dPTQVQ/viewform?usp=header">this form</a> with details.
25+
<br>
26+
For time-sensitive issues, contact <a href="https://www.datadoghq.com/support/">Datadog support</a>.
27+
{{< /beta-callout-private >}}
28+
29+
## Overview
30+
31+
With Live Debugger, you can debug running applications in real time, without redeploying code or interrupting service. Powered by Datadog's [Dynamic Instrumentation][1], Live Debugger uses logpoints&mdash;auto-expiring, "non-breaking breakpoints"&mdash;to collect information from running applications without pausing execution. This makes it ideal for investigating issues in environments where traditional debugging methods aren't practical.
32+
33+
## Key capabilities
34+
35+
Live Debugger provides:
36+
37+
- **Real-time inspection** of variable states, method arguments, and execution paths in running code.
38+
- **Non-invasive data collection** that captures debugging information without stopping applications or degrading performance.
39+
- **Code instrumentation** with logpoints that can be added anywhere in your code, including third-party libraries.
40+
- **Auto-expiring logpoints** that are automatically deactivated after a set time (default: 48 hours).
41+
- **Conditional logging** based on user-defined criteria to capture data only when specific conditions are met.
42+
- **Built-in [sensitive data scrubbing][3]** to prevent exposure of personal information, passwords, and secrets.
43+
44+
## Getting started
45+
46+
### Prerequisites
47+
48+
1. All [Dynamic Instrumentation prerequisites][16] are met.
49+
1. You have [created a logs index][19] to store debugging information.
50+
1. (Recommended) You have enabled [Source Code Integration][20] to view and select specific code locations when adding logpoints.
51+
52+
### Setup Live Debugger
53+
54+
Enable and disable Live Debugger on a service using one of the following methods:
55+
56+
#### One-click enablement (recommended) ####
57+
58+
<div class="alert alert-info">Only users with the following permissions can use one-click enablement: <b>Org Management, APM Remote Configuration Read, APM Remote Configuration Write</b>.</div>
59+
60+
1. Select the service and environment on the [Live Debugger Settings][18] page.
61+
1. Check that all prerequisites are met as indicated on the Settings page.
62+
1. Click "Enable" or "Disable":
63+
- "Enable" to allow users to create Debug Sessions on the selected service and environment.
64+
- "Disable" to deactivate active Debug Sessions and prevent users from creating more.
65+
66+
**Note**: No service restart is required for changes to take effect. Admins and security contacts receive email notifications when services are enabled or disabled.
67+
68+
#### Manual enablement ####
69+
1. Select the service and environment on the [Live Debugger Settings][18] page.
70+
1. Follow the instructions to enable Live Debugger.
71+
1. Restart the service before using Live Debugger.
72+
73+
74+
## Live Debugger and Dynamic Instrumentation
75+
Due to shared underlying technology, Live Debugger and Dynamic Instrumentation are always enabled or disabled together on the same service and environment.
76+
77+
Like Live Debugger, Dynamic Instrumentation allows users to create logpoints (in addition to supporting other custom instrumentation like spans, span tags, and metrics). However, Live Debugger logpoints expire automatically after a set time period, while Dynamic Instrumentation logpoints remain active until manually deactivated.
78+
79+
When you enable or disable Live Debugger, the same action applies to Dynamic Instrumentation for that service and environment. When disabled, all data capture stops from both active Debug Session logpoints and dynamic instrumentations.
80+
81+
## Using Live Debugger
82+
83+
### Creating and using a Debug Session
84+
85+
Debug Sessions let you inspect your code at runtime with auto-expiring logpoints. To create and use a Debug Session:
86+
87+
1. Start a Debug Session from one of the following:
88+
- On the [Live Debugger page][14], click **Create Debug Session**.
89+
- (Requires Code Origins feature) In the [Trace Explorer][22], click on a trace to open the side panel, find the Code Origin section, and click **Start Debug Session**.
90+
2. Add the first logpoint to start the session.
91+
3. Add, remove, and modify logpoints within the session.
92+
93+
Debug Sessions automatically expire after 48 hours. You can manually disable and re-enable both sessions and individual logpoints at any time.
94+
95+
96+
### Creating logpoints
97+
98+
Logpoints are "non-breaking breakpoints" that specify where in the code to capture information, what data to include, and under what conditions. To add a logpoint for debugging:
99+
100+
1. Go to the [Live Debugger page][14].
101+
2. Click **Create Debug Session**.
102+
3. Choose your service, environment, and select where in your code to place the first logpoint.
103+
4. Define a logpoint message template using the [Dynamic Instrumentation expression language][2].
104+
5. (Optional) Enable "Capture Variables" to collect all execution context (this feature is rate-limited to 1 execution per second).
105+
6. (Optional) Define a condition for when the logs should be emitted.
106+
107+
**Note:** Some feature limitations may apply depending on the service's runtime language. Review the [runtime language-specific documentation][17] for more details.
108+
109+
### Protecting sensitive data
110+
111+
Live Debugger data might contain sensitive information, especially when using the "Capture Variables" option. To protect this data:
112+
113+
1. Use the built-in [sensitive data scrubbing][3] mechanisms.
114+
2. Use [Sensitive Data Scanner][15] to identify and redact sensitive information based on regular expressions.
115+
116+
## Impact on performance and billing
117+
118+
Enabling Live Debugger and Dynamic Instrumentation on a service does not trigger data capture or impact performance. Data capture only occurs when there are active Debug Sessions or dynamic instrumentations on that service.
119+
120+
**Performance impact**: Datadog's agent-driven instrumentation ensures minimal impact on application performance; sampling logic, rate limits, and built-in budgets prevent runaway data capture.
121+
122+
**Pricing impact**: Logs captured by Datadog are all billed the same way, whether they are generated from Live Debugger or logger lines in your source code. With Live Debugger, the logpoints automatically expire after the set time period, limiting unnecessary data accumulation and costs. Monitor your [Datadog Plan & Usage page][21] for any unexpected increases after utilizing a new feature.
123+
124+
## Limitations
125+
126+
The following constraints apply to Live Debugger usage and configuration:
127+
128+
- **Language support:** Live Debugger is available for the same runtime languages as [Dynamic Instrumentation][1], including: Java, Python, .NET, PHP (preview), Node.js (preview), Ruby (preview).
129+
- **Configuration scope:** Live Debugger and Dynamic Instrumentation are enabled or disabled together for the same service and environment.
130+
- **Rate limits:**
131+
- Logpoints with variable capture: Limited to 1 execution per second.
132+
- Logpoints without variable capture: Limited to 5000 executions per second, per service instance.
133+
- **Session duration:** Debug Sessions automatically expire after 48 hours by default.
134+
135+
## Further Reading
136+
137+
{{< partial name="whats-next/whats-next.html" >}}
138+
139+
[1]: /dynamic_instrumentation/
140+
[2]: /dynamic_instrumentation/expression-language/
141+
[3]: /dynamic_instrumentation/sensitive-data-scrubbing/
142+
[4]: /agent/
143+
[5]: /agent/remote_config/
144+
[6]: https://github.com/DataDog/dd-trace-java
145+
[7]: https://github.com/DataDog/dd-trace-py
146+
[8]: https://github.com/DataDog/dd-trace-dotnet
147+
[9]: https://github.com/DataDog/dd-trace-js
148+
[10]: https://github.com/DataDog/dd-trace-rb
149+
[11]: https://github.com/DataDog/dd-trace-php
150+
[12]: /getting_started/tagging/unified_service_tagging/
151+
[13]: https://app.datadoghq.com/dynamic-instrumentation/setup
152+
[14]: https://app.datadoghq.com/debugging/sessions
153+
[15]: /dynamic_instrumentation/sensitive-data-scrubbing/#redact-based-on-variable-values-with-sensitive-data-scanner
154+
[16]: /dynamic_instrumentation/#prerequisites
155+
[17]: /dynamic_instrumentation/enabling
156+
[18]: https://app.datadoghq.com/debugging/settings
157+
[19]: /dynamic_instrumentation/#create-a-logs-index
158+
[20]: /integrations/guide/source-code-integration/
159+
[21]: https://app.datadoghq.com/account/billing
160+
[22]: https://app.datadoghq.com/apm/traces

0 commit comments

Comments
 (0)
0