Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/en/tracing/live_debugger/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ Enabling Live Debugger and Dynamic Instrumentation on a service does not trigger

The following constraints apply to Live Debugger usage and configuration:

- **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).
- **Language support:** Live Debugger supports the same runtime languages as [Dynamic Instrumentation][14].
- **Configuration scope:** Live Debugger and Dynamic Instrumentation are enabled or disabled together for the same service and environment.
- **Rate limits:**
- Logpoints with variable capture: Limited to 1 execution per second.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,16 @@ If you are interested in trying out the latest user experience improvements for

Dynamic Instrumentation requires the following:

- [Datadog Agent][1] 7.49.0 or higher is installed alongside your service.
- [Datadog Agent][1] 7.49.0 or higher (7.73.0+ for Go) is installed alongside your service.
- [Remote Configuration][2] is enabled in that Agent.
- For Java applications, tracing library [`dd-trace-java`][3] 1.34.0 or higher.
- For Python applications, tracing library [`dd-trace-py`][4] 2.2.0 or higher.
- For .NET applications, tracing library [`dd-trace-dotnet`][5] 2.54.0 or higher.
- For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher.
- (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher.
- (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher.
- (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 (major version 1), or >=2.2.3 (major version 2).
- (Limited Preview) For Go applications, the Agent and your application must run on the same host, with Linux kernel >=5.17.
- [Unified Service Tagging][6] tags `service`, `env`, and `version` are applied to your deployment.
- Recommended, [autocomplete and search (in Preview)][17] is enabled.
- Recommended, [Source Code Integration][7] is set up for your service.
Expand Down Expand Up @@ -233,3 +235,4 @@ You can use a *span tag probe* as an alternative to [using Custom Instrumentatio
[18]: https://github.com/DataDog/dd-trace-js
[19]: https://github.com/DataDog/dd-trace-rb
[20]: https://github.com/DataDog/dd-trace-php
[21]: https://github.com/DataDog/dd-trace-go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ further_reading:
text: 'Getting Started with Datadog Agent'
---

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been told we're trying to move away from "tracing library" and instead say "Datadog SDK", but that might require a finer comb-through. Created a Jira to track! https://datadoghq.atlassian.net/browse/DOCS-13107

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gtk, thanks. Yeah, for now let's keep it more consistent.


## Prerequisites

Expand All @@ -24,7 +24,7 @@ For a better experience, Datadog recommends enabling [autocomplete and search (i

1. Install or upgrade your Agent to version [7.49.0][7] or higher.
2. If you don't already have APM enabled, in your Agent configuration, set the `DD_APM_ENABLED` environment variable to `true` and listening to the port `8126/TCP`.
3. Install or upgrade the .NET tracing libraries to version 2.54.0, by following the relevant instructions for [.NET Framework][2] or [.NET Core][3].
3. Install or upgrade the .NET tracing library to version 2.54.0, by following the relevant instructions for [.NET Framework][2] or [.NET Core][3].
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.
5. After starting your service with Dynamic Instrumentation enabled, you can start using Dynamic Instrumentation on the [APM > Dynamic Instrumentation page][4].

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: Enable Dynamic Instrumentation for Go
description: Set up Dynamic Instrumentation for Go applications to add probes and capture data without code changes.
private: false
code_lang: go
type: multi-code-lang
code_lang_weight: 50
aliases:
- /dynamic_instrumentation/enabling/go
further_reading:
- link: 'agent'
tag: 'Documentation'
text: 'Getting Started with Datadog Agent'
---

{{< beta-callout-private url="https://www.datadoghq.com/product-preview/live-debugger/" >}}
Dynamic Instrumentation for Go is in limited preview and is not available to all customers.
Request access to join the waiting list.<br>
<b>Note</b>: <a href="#unsupported-features">Some limitations</a> apply to the preview.
{{< /beta-callout-private >}}

Dynamic Instrumentation is a feature provided by the Datadog tracing library.

## Installation

To use Dynamic Instrumentation, you must enable it in both the Datadog Agent and your application.

### Datadog Agent

1. Install or upgrade your Agent to version [7.73.0][6] or higher.
2. Enable Dynamic Instrumentation in the Agent configuration using one of the following methods, depending on how you deploy the Agent:

{{< tabs >}}
{{% tab "Configuration YAML file" %}}
Update `system-probe.yaml` (located alongside `datadog.yaml`) with the following. For more information, see [Agent configuration files][101].
```yaml
dynamic_instrumentation:
enabled: true
```
[101]: /agent/configuration/agent-configuration-files/?tab=agentv6v7#agent-main-configuration-file

{{% /tab %}}
{{% tab "Environment variable" %}}
Add the following to your Datadog Agent manifest:
```yaml
DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
```

{{% /tab %}}
{{% tab "Helm" %}}
Add the following to your Helm chart:
```yaml
datadog:
dynamicInstrumentationGo:
enabled: true
```

{{% /tab %}}
{{< /tabs >}}

### Application (tracing library)

1. Install or upgrade the Go tracing library to version >=1.74.6 or >=2.2.3, by following the [Go tracing library installation instructions][2]..
2. Run your service with Dynamic Instrumentation enabled by setting the following environment variable:

```
DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
```

3. Configure [Unified Service Tags][201] so that you can filter and group your instrumentations and target active clients across these dimensions:
- `DD_SERVICE`
- `DD_ENV`
- `DD_VERSION`
4. Restart your service.
5. After the service starts, you can add and manage instrumentations from the [**APM** > **Live Debugger**][3] page.

[201]: https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging/?tab=kubernetes

## What to do next

See the [Live Debugger documentation][4] for information about adding instrumentations, capturing application state, and browsing and indexing the collected data.

## Supported features

- Adding probes for method calls, returns, and specific code lines
- Symbol search for probe location selection
- Capturing variables and return values available at the selected probe location
- [Sensitive data redaction][7]
- [Source code integration][8]

## Unsupported features

- Dynamic Instrumentation for logs, metrics, spans, and span tag probes
- Log templates and condition expressions
- PII redaction based on specific classes or types
- Propagation of additional `DD_TAGS` set on the service to probe result tags

## Further reading

{{< partial name="whats-next/whats-next.html" >}}

[2]: /tracing/trace_collection/dd_libraries/go/
[3]: https://app.datadoghq.com/debugging
[4]: /tracing/live_debugger/
[5]: /getting_started/tagging/unified_service_tagging
[6]: https://app.datadoghq.com/account/settings/agent/latest?platform=overview
[7]: /dynamic_instrumentation/sensitive-data-scrubbing/#redact-based-on-variable-values-with-sensitive-data-scanner
[8]: /integrations/guide/source-code-integration/?tab=go#embed-git-information-in-your-build-artifacts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ further_reading:
text: 'Getting Started with Datadog Agent'
---

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.

## Requirements

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ further_reading:
text: 'Getting Started with Datadog Agent'
---

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.

## Installation

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ further_reading:
text: 'Getting Started with Datadog Agent'
---

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.

## Installation

1. Install or upgrade your Agent to version [7.49.0][7] or higher.
2. If you don't already have APM enabled, in your Agent configuration, set the `DD_APM_ENABLED` environment variable to `true` and listening to the port `8126/TCP`.
3. Install or upgrade the PHP tracing libraries to version 1.5.0, by following the [relevant instructions][2].
3. Install or upgrade the PHP tracing library to version 1.5.0, by following the [relevant instructions][2].
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.
5. After starting your service with Dynamic Instrumentation enabled, you can start using Dynamic Instrumentation on the [APM > Dynamic Instrumentation page][3].

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ further_reading:
text: 'Getting Started with Datadog Agent'
---

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.

## Prerequisites

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ further_reading:
Note that <a href="#limitations">some limitations</a> apply to the preview.
{{< /beta-callout-private >}}

Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.
Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4.

**Note**: Dynamic Instrumentation is supported only for applications running in `production` environment (`RAILS_ENV`, `RACK_ENV`, etc.).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,13 @@
</div>
</a>
</div>
<div class="col">
<a class="card h-100" href="/dynamic_instrumentation/enabling/go">
<div class="card-body text-center py-2 px-1">
{{ partial "img.html" (dict "root" . "src" "integrations_logos/go-metro.png" "class" "img-fluid" "alt" "Go" "width" "400") }}
</div>
</a>
</div>
</div>
</br>
</div>
Expand Down
Loading