Skip to main content

Go Agent Introduction

The Go Agent adopts a brand-new Go application instrumentation technology developed by Tingyun Team. It does not require modification or recompilation of application code. With simple configuration, you can collect performance data from Go binary applications.

Usage Steps

  1. Ensure your system meets the compatibility requirements.
  2. If you do not have a Guanyun account, please register one.
  3. Download and install the Collector component from the report management interface.
  4. Download and install the UniAgent Agent or Go Agent.
  5. Configure the Go application startup parameters.
  6. View data on the report page. If you encounter issues, refer to Common Issues.

Supported Operating Systems

  • Supports Linux x86_64 distributions with kernel version above 2.6.32 and GLIBC version above 2.12
  • Windows operating system is not supported
  • ARM64 architecture Linux is temporarily not supported

Supported Go Compiler Versions

  • Go 1.17
  • Go 1.18
  • Go 1.19
  • Go 1.20
  • Go 1.21
  • Go 1.22
  • Go 1.23

Go Compilation Options

  • Supports both dynamic linking (CGO_ENABLED=1) and static linking (CGO_ENABLED=0) Go applications
  • Supports Go applications compiled with glibc and muslc
  • Supports applications without symbol tables (strip or -ldflags="-s" or -ldflags="-s -w")
  • Supports compilation mode with race condition detection enabled (-race)
  • Supports position independent executable (PIE) mode (-buildmode=pie)
  • Not supported: -linkshared

Deployment Environments

  • Supports deployment on physical hosts
  • Supports deployment inside virtual machines
  • Supports deployment inside Docker containers (only images with C libraries are supported; images without C libraries are not supported)
  • Supports deployment inside Kubernetes Pods (hot-patching mode is not supported)

Go SDK Introduction

Go SDK is a third-party Go language module, published at: github.com/TingYunGo/goagent. You need to modify the application project code, recompile, and deploy.

Go SDK supports AMD64 architecture on Linux and Go versions 1.9~1.17.x.

Go SDK provides both automatic instrumentation and custom instrumentation (Go API) methods.

For supported frameworks and components, see Support List.

Code License: Go SDK is released under the Apache 2.0 license.

If you are not familiar with Go, see Go Language Introduction.

If you are already familiar with Go, you can proceed to Tingyun Go SDK Instrumentation to get started.