使用Aliyun OpenTelemetry Golang Agent上报监控数据
古琦
一、代码仓库:
https://github.com/alibaba/opentelemetry-go-auto-instrumentation
二、编译Golang Agent
编译前请确保本地Go版本在1.21或者以上
cd opentelemetry-go-auto-instrumentation
make clean && make build
编译完成后产生一个二进制otelbuild
三、使用Golang Agent 编译Go项目
可以使用项目中提供的Demo进行编译
cd example/demo
../../otelbuild
执行完成后可以查看到编译好的二进制文件demo
四、运行Demo上报监控数据
启动mysql&redis
docker run -d -p 3306:3306 -p 33060:33060 -e MYSQL_USER=test -e MYSQL_PASSWORD=test -e MYSQL_DATABASE=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:mysql-8036docker run -d -p 6379:6379 registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:redis-latest
启动jaeger,用于收集Trace数据
docker run --rm --name jaeger \ -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ -p 14250:14250 \ -p 14268:14268 \ -p 14269:14269 \ -p 9411:9411 \ registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:jaeger
启动应用
OTEL_EXPORTER_ENDPOINT="localhost:4318" OTEL_EXPORTER_INSECURE=true OTEL_SERVICE_NAME=demo ./demo