Compatibility

The Go Datadog Trace library is open source. View the GitHub repository for more information.

The Go Datadog Trace Library has a version support policy defined for Go versions. The two latest releases of Go are fully supported, while the third newest release is considered in maintenance. Older versions may function, but no support is provided by default. For special requests, contact support.

Requirements

Integrations

Framework compatibility

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

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

🔹 Compile-time instrumentation is done directly within the library, and cannot be locally opted out of using the //orchestrion:ignore directive.

Library compatibility

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

LibrarySupport TypeExamples and Documentation
AWS SDKManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/aws/aws-sdk-go/aws
AWS SDK v2Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/aws/aws-sdk-go-v2/aws
ElasticsearchManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/olivere/elastic
CassandraManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/gocql/gocql
GraphQLManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/graph-gophers/graphql-go
HTTPManual or Compile-Time🔹gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http
HTTP routerManual or Compile-Time🔹gopkg.in/DataDog/dd-trace-go.v1/contrib/julienschmidt/httprouter
Redis (go-redis)Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/go-redis/redis
Redis (go-redis-v8)Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/go-redis/redis.v8
Redis (redigo)Manualgopkg.in/DataDog/dd-trace-go.v1/contrib/garyburd/redigo
Redis (new redigo)Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/gomodule/redigo
SQLManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql
SQLxManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/jmoiron/sqlx
MongoDBManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/go.mongodb.org/mongo-driver/mongo
MongoDB (mgo)Manualgopkg.in/DataDog/dd-trace-go.v1/contrib/globalsign/mgo
BuntDBManualgopkg.in/DataDog/dd-trace-go.v1/contrib/tidwall/buntdb
LevelDBManualgopkg.in/DataDog/dd-trace-go.v1/contrib/syndtr/goleveldb/leveldb
miekg/dnsManualgopkg.in/DataDog/dd-trace-go.v1/contrib/miekg/dns
Kafka (confluent)Manual or Compile-Time🔹gopkg.in/DataDog/dd-trace-go.v1/contrib/confluentinc/confluent-kafka-go
Kafka (sarama)Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/IBM/sarama.v1
Google APIManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/google.golang.org/api
go-restfulManualgopkg.in/DataDog/dd-trace-go.v1/contrib/emicklei/go-restful
TwirpManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/twitchtv/twirp
VaultManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/hashicorp/vault
ConsulManualgopkg.in/DataDog/dd-trace-go.v1/contrib/hashicorp/consul
GormManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/jinzhu/gorm
Gorm v2Manual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/gorm.io/gorm.v1
KubernetesManual or Compile-Timegopkg.in/DataDog/dd-trace-go.v1/contrib/k8s.io/client-go/kubernetes
MemcacheManualgopkg.in/DataDog/dd-trace-go.v1/contrib/bradfitz/gomemcache/memcache

🔹 Compile-time instrumentation is done directly within the library, and cannot be locally opted out of using the //orchestrion:ignore directive.

Packages must be imported with:

import "gopkg.in/DataDog/dd-trace-go.v1/contrib/<PACKAGE_DIR>/<PACKAGE_NAME>"

Further Reading

Additional helpful documentation, links, and articles: