The Service Map for APM is here!

Tracing Go Applications

Installation and Getting Started

For configuration instructions and details about using the API, check out the Datadog API documentation for manual instrumentation, and the integrations section for Go libraries and frameworks supporting automatic instrumentation.

For a description of the terminology used in APM, take a look at the Getting started with APM section. For details about contributing, check the official repository file.

Consult the migration document if you need to migrate from an older version of the tracer (e.g. v<0.6.x) to newest version.


First install and configure the Datadog Agent (see additional documentation for tracing Docker applications).

Next, install the Go tracer from its canonical import path:

go get

You are now ready to import the tracer and start instrumenting your code!

Automatic Instrumentation

We have built a series of pluggable packages which provide out-of-the-box support for instrumenting a series of libraries and frameworks. Find below the list of supported integrations.


To begin tracing your Go applications, your environment must first meet the following requirements:

  • Runing the Datadog Agent >= 5.21.1.
  • Using Go 1.9+


Framework Compatibility

Integrate the Go tracer with the following list of web frameworks using one of the following helper packages.

Framework Support Type GoDoc Datadog Documentation
Gin Fully Supported
Gorilla Mux Fully Supported
gRPC Fully Supported
gRPC v1.2 Fully Supported

Library Compatibility

The Go tracer includes support for the following data stores and libraries.

Library Support Type Examples and Documentation
AWS SDK Fully Supported
Elasticsearch Fully Supported
Cassandra Fully Supported
GraphQL Fully Supported
HTTP Fully Supported
HTTP router Fully Supported
Redis (go-redis) Fully Supported
Redis (redigo) Fully Supported
SQL Fully Supported
SQLx Fully Supported
MongoDB Alpha
BuntDB Fully Supported
LevelDB Fully Supported
miekg/dns Fully Supported
Kafka (confluent) Fully Supported
Kafka (sarama) Fully Supported
Google API Fully Supported
go-restful Fully Supported

Note: The integrations documentation also provides a detailed overview of the supported packages and their APIs, along with usage examples.


The tracer is configured with options parameters when the Start function is called. A list of available options are:

package main

import ""

func main() {
    // Start the tracer with zero or more options.
    defer tracer.Stop()

For more tracer settings, see available options in the configuration documentation.

Further Reading