Language and framework compatibility

Supported Go versions

The Datadog Go tracing library supports Go version 1.14 and greater, on the following architectures:

  • Linux (GNU) x86-64
  • Alpine Linux (musl) x86-64
  • macOS (Darwin) x86-64

You can monitor application security for Go apps running in Docker, Kubernetes, and AWS ECS.

Supported frameworks

Integrate the Go tracer with the following list of web frameworks using one of the corresponding APM tracer integrations. Refer to Go’s integrations documentation for a detailed overview of the supported packages and their APIs, along with usage examples.

Enabling CGO

Compiling your code with ASM enabled involves CGO and therefore requires:

  • The gcc compiler for the target GOOS and GOARCH.
  • The C library headers.
  • The CGO bindings enabled. This is controlled by the CGO_ENABLED environment variable which is enabled by default when compiling natively.

To install the above requirements:

Operating systemConsole command
Debian, Ubuntu$ apt install gcc libc6-dev
Alpine$ apk add gcc musl-dev
RHEL, CentOS, Fedora$ yum install gcc glibc-devel
macOS$ xcode-select --install

Note: The Go toolchain disables CGO when cross-compiling and so, CGO needs to be explicitly enabled.

ASM capabilities support

The following ASM capabilities are supported in the Go library, for the specified tracer version:

ASM capabilityMinimum Go tracer version
Threat Detection
–> Business logic API
Threat Protection
–> IP blocking
–> Suspicious request blocking
–> User blocking

–> 1.48.0
–> v1.50.0
–> 1.48.0
Vulnerability Management
–> Open source vulnerability detection
–> Custom code vulnerability detection
not supported

The minimum tracer version to get all supported ASM capabilities for Go is 1.48.0.

Note: Threat Protection requires enabling Remote Configuration, which is included in the listed minimum tracer version.

If you would like to see support added for any of the unsupported capabilities, or for your Go framework, let us know! Fill out this short form to send details.