This topic lists the requirements of Go application monitoring for operating systems and architecture, and the supported third-party components and frameworks.
Operating systems
Compiler | Operating system | Architecture |
instgo_linux_amd64 | Linux | AMD64 |
instgo_linux_arm64 | Linux | AMD64 |
instgo_darwin_amd64 | Darwin | AMD64 |
instgo_darwin_arm64 | Darwin | AMD64 |
instgo_windows_amd64.exe | Windows | AMD64 |
Supported Go versions
Go 1.18 and later
Supported components
Message
Component | Repository address | Minimum version | Maximum version |
AMQP | V1.9.0 | V1.10.0 | |
Segmentio Kafka | V0.4.10 | V0.4.48 | |
Apache RocketMQ Go client | V2.1.0 | V2.1.2 | |
Apache RocketMQ Client | https://github.com/apache/rocketmq-clients/tree/master/golang | V5.0.0 | V5.1.1 |
IBM Sarama | V1.40.0 | V1.43.3 | |
Shopify Sarama | V1.22.0 | V1.38.1 |
RPC framework
Component | Repository address | Minimum version | Maximum version |
Dubbo | V3.0.1 | V3.1.0 | |
Echo | V4.0.0 | V4.12.0 | |
Fast HTTP | V1.45.0 | V1.56.0 | |
Fiber | V2.43.0 | V2.52.6 | |
Gin | V1.7.0 | V1.10.0 | |
Go Micro | V4.9.0 | V5.3.1 | |
Go Restful | V3.7.0 | V3.12.0 | |
Go Zero | V1.5.0 | V1.7.0 | |
gRPC | V1.44.0 | V1.67.1 | |
Iris | V12.0.0 | V12.2.12 | |
Kitex | V0.5.1 | V0.10.0 | |
Kratos | V2.5.2 | V2.8.0 | |
Mux | V1.3.0 | V1.8.1 | |
Net/HTTP | V1.18 | V1.23 | |
Thrift | V0.19.0 | V0.20.0 | |
Hertz | V0.8.0 | V0.9.2 |
SQL/NoSQL
Component | Repository address | Minimum version | Maximum version |
go-elasticsearch | V8.0.0 | V8.15.0 | |
Go Redis | V8.11.0 | V9.5.1 | |
Go SQL Driver | V1.4.0 | V1.7.1 | |
GORM | V1.22.0 | V1.25.9 | |
GORM MySQL | V1.1.3 | V1.5.4 | |
Go MySQL Driver | V1.18 | V1.21 | |
MongoDB | V1.11.1 | V1.11.7 | |
Redis Go | V1.9.0 | V1.9.0 |
Log
Component | Repository address | Minimum version | Maximum version |
Zerolog | V1.10.0 | V1.33.0 | |
Zap | V1.20.0 | V1.27.0 | |
Logrus | V1.5.0 | V1.9.3 | |
Log | V1.18 | V1.23 | |
Slog | V1.18 | V1.23 |
Trace SDK
Component | Repository address | Minimum version | Maximum version |
OpenTracing | V1.1.0 | V1.2.0 | |
OpenTelemetry SDK | V1.6.0 | V1.31.0 |
Other SDK
Component | Repository address | Minimum version | Maximum version |
Function Compute SDK for Go | V0.2.9 | V0.2.10 |
FAQ
Why is the trace data missing under message queue frameworks?
The ARMS agent for Go may have the following limitations when collecting trace context due to constraints imposed by certain message queue frameworks.
Component | Repository address | Producer | Consumer |
AMQP | No limitations. | Only receive spans are collected. Receive spans are not connected to the spans created by the downstream service in the trace. | |
Segmentio Kafka | No limitations. | Only receive spans are collected. Receive spans are not connected to the spans created by the downstream service in the trace. | |
Shopify Sarama | Publish spans created by AsyncProducer are not connected to the spans created by the upstream service in the trace. | Only receive spans are collected. Receive spans are not connected to the spans created by the downstream service in the trace. | |
IBM Sarama | Publish spans created by AsyncProducer are not connected to the spans created by the upstream service in the trace. | Only receive spans are collected. Receive spans are not connected to the spans created by the downstream service in the trace. | |
Apache RocketMQ Go client | No limitations. |
| |
Apache RocketMQ client | https://github.com/apache/rocketmq-clients/tree/master/golang | No limitations. | Only receive spans are collected. Receive spans are not connected to the spans created by the downstream service in the trace. |