Skip to content

Commit de12155

Browse files
committed
[Live Debugger] Add instructions for Go (limited preview)
1 parent fb28085 commit de12155

File tree

4 files changed

+121
-2
lines changed

4 files changed

+121
-2
lines changed

content/en/tracing/live_debugger/_index.md

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

136136
The following constraints apply to Live Debugger usage and configuration:
137137

138-
- **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).
138+
- **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).
139139
- **Configuration scope:** Live Debugger and Dynamic Instrumentation are enabled or disabled together for the same service and environment.
140140
- **Rate limits:**
141141
- Logpoints with variable capture: Limited to 1 execution per second.

content/en/tracing/trace_collection/dynamic_instrumentation/_index.md

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

4646
Dynamic Instrumentation requires the following:
4747

48-
- [Datadog Agent][1] 7.49.0 or higher is installed alongside your service.
48+
- [Datadog Agent][1] 7.49.0 or higher (7.73.0 for Go) is installed alongside your service.
4949
- [Remote Configuration][2] is enabled in that Agent.
5050
- For Java applications, tracing library [`dd-trace-java`][3] 1.34.0 or higher.
5151
- For Python applications, tracing library [`dd-trace-py`][4] 2.2.0 or higher.
5252
- For .NET applications, tracing library [`dd-trace-dotnet`][5] 2.54.0 or higher.
5353
- For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher.
5454
- (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher.
5555
- (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher.
56+
- (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3.
57+
- (Limited Preview) For Go applications, agent and the application must run on the same host, with Linux kernel >=5.17.
5658
- [Unified Service Tagging][6] tags `service`, `env`, and `version` are applied to your deployment.
5759
- Recommended, [autocomplete and search (in Preview)][17] is enabled.
5860
- Recommended, [Source Code Integration][7] is set up for your service.
@@ -235,3 +237,4 @@ You can use a *span tag probe* as an alternative to [using Custom Instrumentatio
235237
[18]: https://github.com/DataDog/dd-trace-js
236238
[19]: https://github.com/DataDog/dd-trace-rb
237239
[20]: https://github.com/DataDog/dd-trace-php
240+
[21]: https://github.com/DataDog/dd-trace-go
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
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: 50
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+
### Datadog Agent configuration
27+
28+
1. Install or upgrade your Agent to version [7.73.0][6] or higher.
29+
2. Update Agent configuration to enable Dynamic Instrumentation (note below you'll need to do something similiar for your service as well).
30+
31+
{{< tabs >}}
32+
{{% tab "Configuration YAML file" %}}
33+
Update your `system-probe.yaml` file with:
34+
```yaml
35+
dynamic_instrumentation:
36+
enabled: true
37+
```
38+
39+
[101]: /agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file
40+
{{% /tab %}}
41+
{{% tab "Environment variable" %}}
42+
Add the following to your Datadog Agent manifest:
43+
```yaml
44+
DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
45+
```
46+
47+
{{% /tab %}}
48+
{{% tab "Helm" %}}
49+
Add the following to your Helm chart:
50+
```yaml
51+
datadog:
52+
dynamicInstrumentationGo:
53+
enabled: true
54+
```
55+
56+
{{% /tab %}}
57+
{{< /tabs >}}
58+
59+
### Application / Tracing library configuration
60+
61+
1. Install or upgrade the Go tracing library to version >=1.74.6 or >=2.2.3, by following the [relevant instructions][2].
62+
2. 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.
63+
3. After starting your service with Dynamic Instrumentation enabled, you can start using Live Debugger on the [APM > Live Debugger page][3].
64+
65+
## Configuration
66+
67+
Configure Dynamic Instrumentation using the following environment variables:
68+
69+
| Environment variable | Type | Description |
70+
| ------------------------------------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------- |
71+
| `DD_DYNAMIC_INSTRUMENTATION_ENABLED` | Boolean | Set to `true` to enable Dynamic Instrumentation. |
72+
| `DD_SERVICE` | String | The [service][5] name, for example, `web-backend`. |
73+
| `DD_ENV` | String | The [environment][5] name, for example, `production`. |
74+
| `DD_VERSION` | String | The [version][5] of your service. |
75+
76+
## What to do next
77+
78+
See [Live Debugger][4] for information about adding instrumentations and browsing and indexing the data.
79+
80+
## Limitations
81+
82+
The following limitations apply to the Go implementation:
83+
84+
### Supported features
85+
86+
- [Live Debugger][4] probes for method calls, returns and specific code lines
87+
- Symbol search for quick probe location selection
88+
- Capturing variables and return values available at the selected probe location
89+
- [Sensitive data redaction][7]
90+
- [Source code integration][8]
91+
92+
### Unsupported features
93+
94+
- Dynamic Instrumenetation log, metrics, spans and span tag probes
95+
- Log templates and condition expressions
96+
- PII redaction based on specific classes or types
97+
- Propagation of additional `DD_TAGS` set on the service to the probe results tags
98+
99+
## Further reading
100+
101+
{{< partial name="whats-next/whats-next.html" >}}
102+
103+
[2]: /tracing/trace_collection/dd_libraries/go/
104+
[3]: https://app.datadoghq.com/debugging
105+
[4]: /tracing/live_debugger/
106+
[5]: /getting_started/tagging/unified_service_tagging
107+
[6]: https://app.datadoghq.com/account/settings/agent/latest?platform=overview
108+
[7]: /dynamic_instrumentation/sensitive-data-scrubbing/#redact-based-on-variable-values-with-sensitive-data-scanner
109+
[8]: /integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts

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)