← 开源
alibaba

loongsuite-go

OpenTelemetry Compile-Time Instrumentation for Golang

InfrastructureObservabilityGo
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
903
Star
126
Fork
+0
本周
51
贡献者
创建于 2024-02-02 · 更新于 2026-09-28 · 今日第 12521 名
主要开发者
README

   

Loongsuite Go Agent provides an automatic solution for Golang applications that want to leverage OpenTelemetry to enable effective observability. No code changes are required in the target application, the instrumentation is done at compile time. Simply adding otel prefix to go build to get started :rocket:

Installation

[!IMPORTANT] Requires Go 1.25+ for both the tool and the instrumented application. See compatibility.

Prebuilt Binaries

  • Download
  • Download
  • Download
  • Download
  • Download

Install via Bash

For Linux and macOS, the following script installs otel to /usr/local/bin/otel by default:

$ curl -fsSL https://cdn.jsdelivr.net/gh/alibaba/loongsuite-go@main/install.sh | sudo bash

Build from Source

$ make         # build only
$ make install # build and install

Getting Started

Make sure the tool is installed:

$ # You may use "otel-linux-amd64" instead of "otel"
$ otel version

Just adding otel prefix to go build to build your project:

$ otel go build
$ otel go build -o app cmd/app
$ otel go build -gcflags="-m" cmd/app

That's the whole process! The tool will automatically instrument your code with OpenTelemetry, and you can start to observe your application. :telescope:

The detailed usage of otel tool can be found in Usage.

[!NOTE] If you find any compilation failures while go build works, it's likely a bug. Please feel free to file a bug at GitHub Issues to help us enhance this project.

Examples

  • demo - End-to-end example with OpenTelemetry tracing and metrics
  • zap logging - Auto-instrumentation for go.uber.org/zap logging
  • benchmark - Performance testing and overhead measurement
  • sql injection - Custom code injection for SQL injection detection
  • nethttp - HTTP monitoring with request/response instrumentation
  • kratos-demo - Integration with the Kratos framework
  • kafka-demo - Kafka consumer message monitoring

Supported Libraries

List of Supported Libraries

Library Repository Url Min Version Max Version
adk-go https://pkg.go.dev/google.golang.org/adk v0.2.0 -
amqp091 https://github.com/rabbitmq/amqp091-go v1.10.0 -
ants https://github.com/panjf2000/ants v1.1.0 -
anthropic-sdk-go https://github.com/anthropics/anthropic-sdk-go v1.25.0 -
asynq https://github.com/hibiken/asynq v0.23.0 -
aws-sdk-go https://github.com/aws/aws-sdk-go v1.55.5 -
clickhouse/v2 https://github.com/ClickHouse/clickhouse-go/v2 v2.13.0 -
cron https://github.com/robfig/cron/v3 v3.0.0 -
database/sql https://pkg.go.dev/database/sql - -
deepseek https://github.com/cohesion-org/deepseek-go v1.3.0 -
dubbo-go https://github.com/apache/dubbo-go v3.3.0 -
echo https://github.com/labstack/echo v4.0.0 -
elasticsearch https://github.com/elastic/go-elasticsearch v8.4.0 v8.15.1
eino https://github.com/cloudwego/eino v0.7.13 -
fasthttp https://github.com/valyala/fasthttp v1.45.0 -
fiber https://github.com/gofiber/fiber v2.43.0 v2.53.0
fiber/v3 https://github.com/gofiber/fiber/v3 v3.0.0 -
franz-go https://github.com/twmb/franz-go v1.18.0 -
gin https://github.com/gin-gonic/gin v1.7.0 v1.10.2
go-kit/log https://github.com/go-kit/log v0.1.0 v0.2.2
go-micro https://github.com/micro/go-micro v5.0.0 v5.3.1
go-openai https://github.com/sashabaranov/go-openai v1.30.0 -
gocql https://github.com/gocql/gocql v1.3.0 v1.7.1
google-genai https://pkg.go.dev/google.golang.org/genai v1.30.0 -
gopg https://github.com/go-pg/pg v10.10.0 v10.14.1
gorestful/v3 https://github.com/emicklei/go-restful/v3 v3.7.0 v3.12.2
gorm https://github.com/go-gorm/gorm v1.22.0 v1.25.10
gorilla/mux https://github.com/gorilla/mux v1.3.0 v1.8.2
grpc https://google.golang.org/grpc v1.44.0 -
hertz https://github.com/cloudwego/hertz v0.9.0 -
ibm-sarama https://github.com/IBM/sarama v1.40.0 -
iris https://github.com/kataras/iris v12.2.0 v12.2.12
k8s client-go https://github.com/kubernetes/client-go v0.33.3 -
kitex https://github.com/cloudwego/kitex v0.5.1 -
kratos https://github.com/go-kratos/kratos v2.6.3 -
kratos/v3 https://github.com/go-kratos/kratos/v3 v3.0.0 -
langchaingo https://github.com/tmc/langchaingo v0.1.13 -
log https://pkg.go.dev/log - -
logrus https://github.com/sirupsen/logrus v1.5.0 -
mcp https://github.com/mark3labs/mcp-go v0.20.0 -
mcp go-sdk https://github.com/modelcontextprotocol/go-sdk v0.7.0 -
meguminnnnnnnnn/go-openai https://github.com/meguminnnnnnnnn/go-openai - -
mongodb https://github.com/mongodb/mongo-go-driver v1.11.1 v1.15.2
mqtt https://github.com/mochi-mqtt/server v2.6.4 -
neo4j https://github.com/neo4j/neo4j-go-driver v6.0.0 -
nacos https://github.com/nacos-group/nacos-sdk-go/v2 v2.0.0 v2.3.0
net/http https://pkg.go.dev/net/http - -
new-api https://github.com/QuantumNous/new-api - -
ollama https://github.com/ollama/ollama v0.3.14 -
openai-go https://github.com/openai/openai-go v1.5.0 -
redigo https://github.com/gomodule/redigo v1.9.0 -
redis (go-redis) https://github.com/redis/go-redis v9.0.5 -
redis v8 https://github.com/go-redis/redis/v8 v8.11.0 v8.11.6
rocketmq https://github.com/apache/rocketmq-client-go/v2 v2.0.0 -
rpcx https://github.com/smallnest/rpcx v1.6.2 -
rueidis https://github.com/redis/rueidis v1.0.30 -
segmentio/kafka-go https://github.com/segmentio/kafka-go v0.4.0 -
sentinel https://github.com/alibaba/sentinel-golang v1.0.4 -
shopify-sarama https://github.com/Shopify/sarama v1.22.0 -
slog https://pkg.go.dev/log/slog - -
sqlx https://github.com/jmoiron/sqlx v1.3.0 v1.4.1
streadway-amqp https://github.com/streadway/amqp v1.0.0 -
trpc-agent-go https://github.com/trpc-group/trpc-agent-go v0.1.0 -
trpc-go https://github.com/trpc-group/trpc-go v1.0.0 -
zap https://go.uber.org/zap v1.20.0 v1.27.1
zerolog https://github.com/rs/zerolog v1.10.0 v1.34.1

We are progressively open-sourcing the libraries we have supported, and your contributions are Very Welcome

[!IMPORTANT] The framework you expected is not in the list? Don't worry, you can easily inject your code into any frameworks/libraries that are not officially supported.

Please refer to this document to get started.

Community

This project has been contributed upstream to the OpenTelemetry community and successfully incubated the official opentelemetry-go-compile-instrumentation project.

Join our DingTalk group or scan the QR codes below.

LoongCollector SIG LoongSuite Python SIG LoongSuite Go SIG LoongSuite Java SIG

Star History