-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[Live Debugger] Add instructions for Go (limited preview) #32935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Gtk, thanks. Yeah, for now let's keep it more consistent. |
||
|
|
||
| ## Prerequisites | ||
|
|
||
|
|
@@ -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]. | ||
|
|
||
|
|
||
| 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 | ||
domalessi marked this conversation as resolved.
Show resolved
Hide resolved
piob-io marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| 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 | ||
|
|
||
piob-io marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| {{% /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 | ||
Uh oh!
There was an error while loading. Please reload this page.