Skip to content

Commit 6a8ea0f

Browse files
committed
[Live Debugger] Add instructions for Go (limited preview)
1 parent ecb8683 commit 6a8ea0f

File tree

4 files changed

+117
-2
lines changed

4 files changed

+117
-2
lines changed

content/en/tracing/dynamic_instrumentation/_index.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,16 @@ If you are interested in trying out the latest user experience improvements for
4242

4343
Dynamic Instrumentation requires the following:
4444

45-
- [Datadog Agent][1] 7.49.0 or higher is installed alongside your service.
45+
- [Datadog Agent][1] 7.49.0 or higher (7.73.0 for Go) is installed alongside your service.
4646
- [Remote Configuration][2] is enabled in that Agent.
4747
- For Java applications, tracing library [`dd-trace-java`][3] 1.34.0 or higher.
4848
- For Python applications, tracing library [`dd-trace-py`][4] 2.2.0 or higher.
4949
- For .NET applications, tracing library [`dd-trace-dotnet`][5] 2.54.0 or higher.
5050
- For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher.
5151
- (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher.
5252
- (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher.
53+
- (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3.
54+
- (Limited Preview) For Go applications, agent and the application must run on the same host, with Linux kernel >=5.17.
5355
- [Unified Service Tagging][6] tags `service`, `env`, and `version` are applied to your deployment.
5456
- Recommended, [autocomplete and search (in Preview)][17] is enabled.
5557
- Recommended, [Source Code Integration][7] is set up for your service.
@@ -232,3 +234,4 @@ You can use a *span tag probe* as an alternative to [using Custom Instrumentatio
232234
[18]: https://github.com/DataDog/dd-trace-js
233235
[19]: https://github.com/DataDog/dd-trace-rb
234236
[20]: https://github.com/DataDog/dd-trace-php
237+
[21]: https://github.com/DataDog/dd-trace-go
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: Enable Dynamic Instrumentation for Go
3+
description: Set up Dynamic Instrumentation for Go applications to add probes and capture data without code changes.
4+
private: false
5+
code_lang: go
6+
type: multi-code-lang
7+
code_lang_weight: 30
8+
aliases:
9+
- /dynamic_instrumentation/enabling/go
10+
further_reading:
11+
- link: 'agent'
12+
tag: 'Documentation'
13+
text: 'Getting Started with Datadog Agent'
14+
---
15+
16+
{{< beta-callout-private url="https://www.datadoghq.com/product-preview/live-debugger/" >}}
17+
Dynamic Instrumentation for Go is in limited preview, and is not available to all customers.
18+
Request access to join the waiting list.
19+
Note that <a href="#limitations">some limitations</a> apply to the preview.
20+
{{< /beta-callout-private >}}
21+
22+
Dynamic Instrumentation is a feature of supporting Datadog tracing libraries.
23+
24+
## Installation
25+
26+
1. Install or upgrade your Agent to version [7.73.0][6] or higher.
27+
2. Update Agent configuration to enable Dynamic Instrumentation (note below you'll need to do something similiar for your service as well).
28+
29+
{{< tabs >}}
30+
{{% tab "Configuration YAML file" %}}
31+
Update your `system-probe.yaml` file with:
32+
```yaml
33+
dynamic_instrumentation:
34+
enabled: true
35+
```
36+
37+
[101]: /agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file
38+
{{% /tab %}}
39+
{{% tab "Environment variable" %}}
40+
Add the following to your Datadog Agent manifest:
41+
```yaml
42+
DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
43+
```
44+
45+
{{% /tab %}}
46+
{{% tab "Helm" %}}
47+
Add the following to your Helm chart:
48+
```yaml
49+
datadog:
50+
dynamicInstrumentationGo:
51+
enabled: true
52+
```
53+
54+
{{% /tab %}}
55+
{{< /tabs >}}
56+
57+
3. Install or upgrade the Go tracing library to version >=1.74.6 or >=2.2.3, by following the [relevant instructions][2].
58+
4. Run your service with Dynamic Instrumentation enabled by setting the `DD_DYNAMIC_INSTRUMENTATION_ENABLED` environment variable to `true`. Specify `DD_SERVICE`, `DD_ENV`, and `DD_VERSION` Unified Service Tags so you can filter and group your instrumentations and target active clients across these dimensions.
59+
5. After starting your service with Dynamic Instrumentation enabled, you can start using Live Debugger on the [APM > Live Debugger page][3].
60+
61+
## Configuration
62+
63+
Configure Dynamic Instrumentation using the following environment variables:
64+
65+
| Environment variable | Type | Description |
66+
| ------------------------------------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------- |
67+
| `DD_DYNAMIC_INSTRUMENTATION_ENABLED` | Boolean | Set to `true` to enable Dynamic Instrumentation. |
68+
| `DD_SERVICE` | String | The [service][5] name, for example, `web-backend`. |
69+
| `DD_ENV` | String | The [environment][5] name, for example, `production`. |
70+
| `DD_VERSION` | String | The [version][5] of your service. |
71+
72+
## What to do next
73+
74+
See [Live Debugger][4] for information about adding instrumentations and browsing and indexing the data.
75+
76+
## Limitations
77+
78+
The following limitations apply to the Go implementation:
79+
80+
### Supported features
81+
82+
- [Live Debugger][4] probes for method calls, returns and specific code lines
83+
- Symbol search for quick probe location selection
84+
- Capturing variables and return values available at the selected probe location
85+
- [Sensitive data redaction][7]
86+
- [Source code integration][8]
87+
88+
### Unsupported features
89+
90+
- Dynamic Instrumenetation log, metrics, spans and span tag probes
91+
- Log templates and condition expressions
92+
- PII redaction based on specific classes or types
93+
- Propagation of additional `DD_TAGS` set on the service to the probe results tags
94+
95+
## Further reading
96+
97+
{{< partial name="whats-next/whats-next.html" >}}
98+
99+
[2]: /tracing/trace_collection/dd_libraries/go/
100+
[3]: https://app.datadoghq.com/debugging
101+
[4]: /tracing/live_debugger/
102+
[5]: /getting_started/tagging/unified_service_tagging
103+
[6]: https://app.datadoghq.com/account/settings/agent/latest?platform=overview
104+
[7]: /dynamic_instrumentation/sensitive-data-scrubbing/#redact-based-on-variable-values-with-sensitive-data-scanner
105+
[8]: /integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts

content/en/tracing/live_debugger/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Enabling Live Debugger and Dynamic Instrumentation on a service does not trigger
132132

133133
The following constraints apply to Live Debugger usage and configuration:
134134

135-
- **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).
135+
- **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), Go (preview).
136136
- **Configuration scope:** Live Debugger and Dynamic Instrumentation are enabled or disabled together for the same service and environment.
137137
- **Rate limits:**
138138
- Logpoints with variable capture: Limited to 1 execution per second.

layouts/partials/dynamic_instrumentation/dynamic-instrumentation-languages.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@
5151
</div>
5252
</a>
5353
</div>
54+
<div class="col">
55+
<a class="card h-100" href="/dynamic_instrumentation/enabling/go">
56+
<div class="card-body text-center py-2 px-1">
57+
{{ partial "img.html" (dict "root" . "src" "integrations_logos/go-metro.png" "class" "img-fluid" "alt" "Go" "width" "400") }}
58+
</div>
59+
</a>
60+
</div>
5461
</div>
5562
</br>
5663
</div>

0 commit comments

Comments
 (0)