Go Gin
Prerequisites
Go tracer requires Go version 1.18 or higher and Datadog Agent version 5.21.1 or later.
Installation
-
Install dependencies:
go get github.com/DataDog/dd-trace-go/contrib/gin-gonic/gin/v2 \
github.com/DataDog/dd-trace-go/v2/ddtrace/tracer -
Add the highlighted lines below to your project's
main.gofile:package main
import gintrace "github.com/DataDog/dd-trace-go/contrib/gin-gonic/gin/v2"
import "github.com/DataDog/dd-trace-go/v2/ddtrace/tracer"
func main() {
tracer.Start()
defer tracer.Stop()
// Create Gin router
router := gin.Default()
router.Use(gintrace.Middleware(""))
}infoFor more information, refer to https://docs.datadoghq.com/tracing/trace_collection/library_config/go/.
-
Configure the tracer.
- Environment Variables
- Code
DD_SERVICE=<app_name>
# send traces to CubeAPM
DD_TRACE_AGENT_URL=http://<ip_address_of_cubeapm_server>:3130
# optional settings
DD_ENV=myenv
DD_VERSION=1.2.3
DD_TAGS=mykey1:myvalue1,mykey2:myvalue2func main() {
tracer.Start(
tracer.WithService("<app_name>"),
// send traces to CubeAPM
tracer.WithAgentURL("http://<ip_address_of_cubeapm_server>:3130")
// optional settings
tracer.WithEnv("myenv"),
tracer.WithServiceVersion("1.2.3"),
tracer.WithGlobalTag("mykey1:myvalue1,mykey2:myvalue2")
)
defer tracer.Stop()
}
Sample Application
A working example is available at https://github.com/cubeapm/sample_app_go_gin/tree/datadog.
Troubleshooting
The following can be used for debugging:
- Environment Variables
- Code
# Print Datadog tracer startup logs on screen
DD_TRACE_STARTUP_LOGS=true
# Enable Datadog tracer debug logging if needed to see detailed logs
DD_TRACE_DEBUG=true
tracer.Start(
// Print Datadog tracer startup logs on screen
tracer.WithLogStartup(true)
// Enable Datadog tracer debug logging if needed to see detailed logs
tracer.WithDebugMode(true)
)
defer tracer.Stop()