All Products
Search
Document Center

Application Real-Time Monitoring Service:Compatibility requirements of the ARMS agent for Go

Last Updated:Nov 05, 2024

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

https://github.com/rabbitmq/amqp091-go

V1.9.0

V1.10.0

Segmentio Kafka

https://github.com/segmentio/kafka-go

V0.4.10

V0.4.48

Apache RocketMQ Go client

https://github.com/apache/rocketmq-client-go

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

https://github.com/IBM/sarama

V1.40.0

V1.43.3

Shopify Sarama

https://github.com/IBM/sarama

V1.22.0

V1.38.1

RPC framework

Component

Repository address

Minimum version

Maximum version

Dubbo

https://github.com/apache/dubbo-go

V3.0.1

V3.1.0

Echo

https://github.com/labstack/echo

V4.0.0

V4.12.0

Fast HTTP

https://github.com/valyala/fasthttp

V1.45.0

V1.56.0

Fiber

https://github.com/gofiber/fiber

V2.43.0

V2.52.6

Gin

https://github.com/gin-gonic/gin

V1.7.0

V1.10.0

Go Micro

https://github.com/go-micro/go-micro

V4.9.0

V5.3.1

Go Restful

https://github.com/emicklei/go-restful

V3.7.0

V3.12.0

Go Zero

https://github.com/zeromicro/go-zero

V1.5.0

V1.7.0

gRPC

https://github.com/grpc/grpc-go

V1.44.0

V1.67.1

Iris

https://github.com/kataras/iris

V12.0.0

V12.2.12

Kitex

https://github.com/cloudwego/kitex

V0.5.1

V0.10.0

Kratos

https://github.com/go-kratos/kratos

V2.5.2

V2.8.0

Mux

https://github.com/gorilla/mux

V1.3.0

V1.8.1

Net/HTTP

https://pkg.go.dev/net/http

V1.18

V1.23

Thrift

https://github.com/apache/thrift/tree/master/lib/go

V0.19.0

V0.20.0

Hertz

https://github.com/cloudwego/hertz

V0.8.0

V0.9.2

SQL/NoSQL

Component

Repository address

Minimum version

Maximum version

go-elasticsearch

https://github.com/elastic/go-elasticsearch

V8.0.0

V8.15.0

Go Redis

https://github.com/redis/go-redis

V8.11.0

V9.5.1

Go SQL Driver

https://github.com/go-sql-driver/mysql

V1.4.0

V1.7.1

GORM

https://github.com/go-gorm/gorm

V1.22.0

V1.25.9

GORM MySQL

https://github.com/go-gorm/mysql

V1.1.3

V1.5.4

Go MySQL Driver

https://pkg.go.dev/database/sql

V1.18

V1.21

MongoDB

https://github.com/mongodb/mongo-go-driver

V1.11.1

V1.11.7

Redis Go

https://github.com/gomodule/redigo

V1.9.0

V1.9.0

Log

Component

Repository address

Minimum version

Maximum version

Zerolog

https://github.com/rs/zerolog

V1.10.0

V1.33.0

Zap

https://github.com/uber-go/zap

V1.20.0

V1.27.0

Logrus

https://github.com/sirupsen/logrus

V1.5.0

V1.9.3

Log

https://pkg.go.dev/log

V1.18

V1.23

Slog

https://pkg.go.dev/log/slog

V1.18

V1.23

Trace SDK

Component

Repository address

Minimum version

Maximum version

OpenTracing

https://github.com/opentracing/opentracing-go

V1.1.0

V1.2.0

OpenTelemetry SDK

https://github.com/open-telemetry/opentelemetry-go

V1.6.0

V1.31.0

Other SDK

Component

Repository address

Minimum version

Maximum version

Function Compute SDK for Go

https://github.com/aliyun/fc-runtime-go-sdk

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

https://github.com/rabbitmq/amqp091-go

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

https://github.com/segmentio/kafka-go

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

https://github.com/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.

IBM Sarama

https://github.com/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

https://github.com/apache/rocketmq-client-go

No limitations.

  • Only PushConsumer is supported.

  • When multiple messages are consumed at a time and the downstream service is called by the consumer, the spans created by the downstream service are recorded at the end of the spans for the messages in this consumption.

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.