This product is not supported for your selected Datadog site. ().
Limited Availability

Dynamic Instrumentation for Go is in Limited Availability and may not be available for your organization. Request access to join the waiting list.
Note: Some limitations apply.

Request Access

Dynamic Instrumentation is a feature of the Datadog tracing library that lets you add instrumentation to your application at runtime without code changes or redeployments. Follow these instructions to set up Dynamic Instrumentation for Go.

Prerequisites

Before you begin, review the Dynamic Instrumentation prerequisites. Go applications also require:

  • Datadog Agent version 7.73.0 or higher, running on the same host as your application.
  • Go tracing library version 1.74.6 or higher (major version 1), or version 2.2.3 or higher (major version 2). See the installation instructions for setup details.
  • Linux kernel version 5.17 or higher.

Installation

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

Datadog Agent

Enable Dynamic Instrumentation in the Agent configuration using one of the following methods, depending on how you deploy the Agent:

Update system-probe.yaml (located alongside datadog.yaml) with the following. For more information, see Agent configuration files.

dynamic_instrumentation:
  enabled: true

Add the following to your Datadog Agent manifest:

DD_DYNAMIC_INSTRUMENTATION_ENABLED=true

Add the following to your Helm chart:

datadog:
  dynamicInstrumentationGo:
    enabled: true

Application (tracing library)

  1. Run your service with Dynamic Instrumentation enabled by setting the following environment variable:

    DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
    
  2. Configure Unified Service Tags so that you can filter and group your instrumentations and target active clients across these dimensions:

    • DD_SERVICE
    • DD_ENV
    • DD_VERSION
  3. Restart your service.

  4. After the service starts, you can add and manage instrumentations from the APM > Live Debugger page.

What to do next

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

Supported features

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
  • Environments where eBPF is unavailable, including many serverless platforms such as AWS Lambda and AWS Fargate

Further reading

Additional helpful documentation, links, and articles: