Skip to content

Commit b285814

Browse files
authored
Merge branch 'master' into sarah.stonehill/code-origin-new-doc
2 parents 9671fe1 + 097adb7 commit b285814

File tree

8 files changed

+249
-24
lines changed

8 files changed

+249
-24
lines changed

config/_default/menus/main.en.yaml

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3867,116 +3867,121 @@ menu:
38673867
identifier: dyninst_explang
38683868
parent: dyninst
38693869
weight: 902
3870+
- name: Live Debugger
3871+
url: tracing/live_debugger/
3872+
identifier: live_debugger
3873+
parent: tracing
3874+
weight: 10
38703875
- name: Error Tracking
38713876
url: tracing/error_tracking/
38723877
parent: tracing
38733878
identifier: tracing_error_tracking
3874-
weight: 10
3879+
weight: 11
38753880
- name: Error Tracking Explorer
38763881
url: tracing/error_tracking/explorer
38773882
parent: tracing_error_tracking
38783883
identifier: tracing_error_tracking_explorer
3879-
weight: 1001
3884+
weight: 1101
38803885
- name: Issue States
38813886
url: tracing/error_tracking/issue_states
38823887
parent: tracing_error_tracking
38833888
identifier: tracing_error_tracking_states
3884-
weight: 1002
3889+
weight: 1102
38853890
- name: Error Grouping
38863891
url: tracing/error_tracking/error_grouping
38873892
parent: tracing_error_tracking
38883893
identifier: tracing_error_tracking_error_grouping
3889-
weight: 1003
3894+
weight: 1103
38903895
- name: Monitors
38913896
url: tracing/error_tracking/monitors
38923897
parent: tracing_error_tracking
38933898
identifier: tracing_error_tracking_monitors
3894-
weight: 1005
3899+
weight: 1105
38953900
- name: Identify Suspect Commits
38963901
url: tracing/error_tracking/suspect_commits
38973902
parent: tracing_error_tracking
38983903
identifier: tracing_error_tracking_suspect_commits
3899-
weight: 1006
3904+
weight: 1106
39003905
- name: Exception Replay
39013906
url: tracing/error_tracking/exception_replay
39023907
parent: tracing_error_tracking
39033908
identifier: tracing_error_tracking_exception_replay
3904-
weight: 1007
3909+
weight: 1107
39053910
- name: Troubleshooting
39063911
url: error_tracking/troubleshooting
39073912
parent: tracing_error_tracking
39083913
identifier: tracing_error_tracking_troubleshooting
3909-
weight: 1008
3914+
weight: 1108
39103915
- name: Data Security
39113916
url: tracing/configure_data_security/
39123917
parent: tracing
39133918
identifier: tracing_data_security
3914-
weight: 11
3919+
weight: 12
39153920
- name: Guides
39163921
url: tracing/guide/
39173922
parent: tracing
39183923
identifier: tracing_guides
3919-
weight: 12
3924+
weight: 13
39203925
- name: Troubleshooting
39213926
url: tracing/troubleshooting/
39223927
parent: tracing
39233928
identifier: tracing_troubleshooting
3924-
weight: 13
3929+
weight: 14
39253930
- name: Tracer Startup Logs
39263931
url: tracing/troubleshooting/tracer_startup_logs
39273932
identifier: tracing_troubleshooting_startup_logs
39283933
parent: tracing_troubleshooting
3929-
weight: 1301
3934+
weight: 1401
39303935
- name: Tracer Debug Logs
39313936
url: tracing/troubleshooting/tracer_debug_logs
39323937
identifier: tracing_troubleshooting_debug_logs
39333938
parent: tracing_troubleshooting
3934-
weight: 1302
3939+
weight: 1402
39353940
- name: Connection Errors
39363941
url: tracing/troubleshooting/connection_errors
39373942
identifier: tracing_troubleshooting_connection_errors
39383943
parent: tracing_troubleshooting
3939-
weight: 1303
3944+
weight: 1403
39403945
- name: Agent Rate Limits
39413946
url: tracing/troubleshooting/agent_rate_limits
39423947
identifier: tracing_troubleshooting_rate_limits
39433948
parent: tracing_troubleshooting
3944-
weight: 1304
3949+
weight: 1404
39453950
- name: Agent APM metrics
39463951
url: tracing/troubleshooting/agent_apm_metrics
39473952
identifier: tracing_troubleshooting_apm_metrics
39483953
parent: tracing_troubleshooting
3949-
weight: 1305
3954+
weight: 1405
39503955
- name: Agent Resource Usage
39513956
url: tracing/troubleshooting/agent_apm_resource_usage
39523957
identifier: tracing_troubleshooting_agent_usage
39533958
parent: tracing_troubleshooting
3954-
weight: 1306
3959+
weight: 1406
39553960
- name: Correlated Logs
39563961
url: tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel
39573962
identifier: tracing_troubleshooting_correlated_logs
39583963
parent: tracing_troubleshooting
3959-
weight: 1307
3964+
weight: 1407
39603965
- name: PHP 5 Deep Call Stacks
39613966
url: tracing/troubleshooting/php_5_deep_call_stacks
39623967
identifier: tracing_troubleshooting_php_5_deep_call_stacks
39633968
parent: tracing_troubleshooting
3964-
weight: 1308
3969+
weight: 1408
39653970
- name: .NET diagnostic tool
39663971
url: tracing/troubleshooting/dotnet_diagnostic_tool
39673972
identifier: tracing_troubleshooting_dotnet_diagnostic_tool
39683973
parent: tracing_troubleshooting
3969-
weight: 1309
3974+
weight: 1409
39703975
- name: APM Quantization
39713976
url: tracing/troubleshooting/quantization
39723977
identifier: tracing_troubleshooting_quantization
39733978
parent: tracing_troubleshooting
3974-
weight: 1310
3979+
weight: 1410
39753980
- name: Go Compile-Time Instrumentation
39763981
url: /tracing/troubleshooting/go_compile_time
39773982
identifier: tracing_troubleshooting_go_instrumentation
39783983
parent: tracing_troubleshooting
3979-
weight: 1311
3984+
weight: 1411
39803985
- name: Continuous Profiler
39813986
url: profiler/
39823987
pre: profiling-1

config/_default/params.en.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ announcement_banner:
77
mobile_message: 'June 10-11 | Join us in NYC for DASH 2025!'
88
background_color: "#000000"
99
custom_classes: 'dash-announcement-banner'
10-
external_link: https://dtdg.co/dash-corpsite
10+
external_link: https://dtdg.co/dash-docs
1111
translate_status_banner: "This translation isn't up-to-date. For the latest English version, click here"

content/en/serverless/azure_app_services/azure_app_services_linux.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Set these values in the `DD_START_APP` environment variable. Examples below are
5959
Go to **General settings** and add the following to the **Startup Command** field:
6060

6161
```
62-
curl -s https://raw.githubusercontent.com/DataDog/datadog-aas-linux/v1.10.15/datadog_wrapper | bash
62+
curl -s https://raw.githubusercontent.com/DataDog/datadog-aas-linux/v1.11.0/datadog_wrapper | bash
6363
```
6464

6565
{{< img src="serverless/azure_app_service/startup-command-1.jpeg" alt="Azure App Service Configuration: the Stack settings, under the Configuration section of Settings in the Azure UI. Underneath the stack, major version, and minor version fields is a 'Startup Command' field that is populated by the above curl command." style="width:100%;" >}}

content/en/tracing/guide/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,6 @@ These tutorials walk you through setting up a sample multi-service application w
8282
{{< nextlink href="/tracing/guide/setting_up_apm_with_kubernetes_service/" >}}Setting up APM with Kubernetes Service{{< /nextlink >}}
8383
{{< nextlink href="/tracing/guide/aws_payload_tagging/" >}}Capture requests and responses from AWS services automatically{{< /nextlink >}}
8484
{{< nextlink href="/tracing/guide/service_overrides/" >}}Service Overrides{{< /nextlink >}}
85+
{{< nextlink href="/tracing/guide/injectors/" >}}Understanding injector behavior with Single Step Instrumentation{{< /nextlink >}}
8586
{{< nextlink href="/tracing/guide/code_origins/" >}}Code Origins for Spans{{< /nextlink >}}
8687
{{< /whatsnext >}}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: Understanding Injector Behavior with Single Step Instrumentation
3+
further_reading:
4+
- link: tracing/trace_collection/automatic_instrumentation/single-step-apm
5+
tag: Documentation
6+
text: Single Step APM Instrumentation
7+
---
8+
9+
## Overview
10+
11+
The injector is a shared library that automatically instruments applications at runtime. With [Single Step Instrumentation][1], the injector automates environment setup and tracer initialization, eliminating the need for manual configuration.
12+
13+
## How the injector is loaded
14+
15+
### Linux
16+
17+
On Linux systems, the injector uses the `LD_PRELOAD` mechanism—a dynamic linking feature in Unix-like environments—to load itself into all dynamically linked processes. This can happen in two ways:
18+
- Explicitly, by setting the `LD_PRELOAD` environment variable.
19+
- Implicitly, by modifying the system-wide `/etc/ld.so.preload` file.
20+
21+
### Docker
22+
23+
In Docker environments, the injector uses the same `LD_PRELOAD` mechanism as on Linux hosts to load into application processes at runtime. This allows it to initialize tracing logic and modify environment variables before the application starts.
24+
25+
To enable this, Datadog provides a custom `runc` shim that replaces Docker's default container runtime. The shim's purpose is to:
26+
1. Inject the shared library (the injector) into the container.
27+
1. Set the `LD_PRELOAD` environment variable, ensuring the injector is loaded into all dynamically linked processes inside the container.
28+
29+
### Kubernetes
30+
31+
In Kubernetes environments, injection is handled by the Datadog Admission Controller, which uses a mutating admission webhook. When a pod is scheduled, the controller:
32+
33+
1. Evaluates whether the pod should be instrumented based on configured selectors (such as namespaces, labels, or specific pod properties).
34+
1. Mutates the pod spec to:
35+
- Add init containers to download injector and tracer libraries
36+
- Set environment variables (like `LD_PRELOAD`)
37+
- Mount volumes to persist injected libraries
38+
39+
## Injector behavior
40+
41+
After the injector is loaded into a process's memory space—regardless of platform—it performs the following:
42+
- Detects the application's runtime (such as Python, Node.js, PHP, Java, .NET, and Ruby).
43+
- Modifies environment variables or command-line arguments to load the appropriate tracer SDK.
44+
- Emits telemetry to report status and aid in debugging.
45+
- Includes fallback logic to allow the application to continue running uninstrumented if injection fails.
46+
47+
## Further reading
48+
49+
{{< partial name="whats-next/whats-next.html" >}}
50+
51+
[1]: /tracing/trace_collection/automatic_instrumentation/single-step-apm
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

content/en/tracing/metrics/runtime_metrics/_index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ aliases:
77
- /tracing/metrics/runtime_metrics/nodejs
88
- /tracing/metrics/runtime_metrics/python
99
- /tracing/metrics/runtime_metrics/ruby
10+
- /tracing/runtime_metrics/dotnet
11+
- /tracing/runtime_metrics/java
12+
- /tracing/runtime_metrics/nodejs
13+
- /tracing/runtime_metrics/python
14+
- /tracing/runtime_metrics/ruby
1015
description: "Gain additional insights into an application's performance with the runtime metrics associated with your traces."
1116
further_reading:
1217
- link: 'tracing/other_telemetry/connect_logs_and_traces'

0 commit comments

Comments
 (0)