Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Composants et frameworks Go pris en charge par ARMS Application Monitoring

Dernière mise à jour :Sep 10, 2026

Cette rubrique décrit les exigences relatives au système d'exploitation et à l'architecture pour la surveillance des applications Go, ainsi que les composants tiers et les frameworks pris en charge.

Exigences relatives au système d'exploitation

Nom de l'outil de compilation

Système d'exploitation

Architecture

instgo_linux_amd64

Linux

amd64

instgo_linux_arm64

Linux

arm64

instgo_darwin_amd64

Darwin

amd64

instgo_darwin_arm64

Darwin

arm64

instgo_windows_amd64.exe

Windows

amd64

Versions Go prises en charge

Version 1.18 et ultérieures

Versions de plug-in prises en charge

Messagerie

Composant

Adresse du dépôt

Versions antérieures

Versions ultérieures

AMQP

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

v1.4.0

v1.13.0

Segmentio Kafka

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

v0.4.10

Aucune limite

RocketMQ Client Go

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

v2.1.0

v2.1.2

RocketMQ Client

https://github.com/apache/rocketmq-clients/tree/master/golang

v5.0.0

v5.1.3

IBM Sarama

https://github.com/IBM/sarama

v1.22.0

v1.60.1

Shopify Sarama

https://github.com/Shopify/sarama

v1.22.0

v1.38.1

Mqtt Server

https://github.com/mochi-mqtt/server

v2.6.0

Aucune limite

franz-go

https://github.com/twmb/franz-go

v1.18.0

Aucune limite

confluent-kafka-go

https://github.com/confluentinc/confluent-kafka-go

v1.7.0

Aucune limite

streadway-amqp

https://github.com/streadway/amqp

v1.0.0

Aucune limite

Frameworks RPC

Composant

Adresse du dépôt

Versions inférieures

Versions ultérieures

Beego

https://github.com/beego/beego

v1.2.0

Aucune limite

Dubbo

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

v3.0.1

Aucune limite

Echo

https://github.com/labstack/echo

v4.0.0

Aucune limite

FastHTTP

https://github.com/valyala/fasthttp

v1.6.0

Aucune limite

Fiber

https://github.com/gofiber/fiber

v2.43.0

Aucune limite

Gin

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

v1.7.0

Aucune limite

GoFrame

https://github.com/gogf/gf

v2.4.0

Aucune limite

Go Micro

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

v4.9.0

v5.30.0

Go Restful

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

v3.7.0

Aucune limite

Go Zero

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

v1.5.0

Aucune limite

gRPC

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

v1.20.1

Aucune limite

Iris

https://github.com/kataras/iris

v12.0.0

Aucune limite

Kitex

https://github.com/cloudwego/kitex

v0.5.1

Aucune limite

Kratos

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

v2.1.2

v2.9.2

Macaron

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

v1.1.0

Aucune limite

Mux

https://github.com/gorilla/mux

v1.3.0

Aucune limite

Net/HTTP

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

v1.18

Aucune limite

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.10.3

Rpcx

https://github.com/smallnest/rpcx

v1.9.0

Aucune limite

Req

https://github.com/imroc/req

v3.0.0

Aucune limite

SQL/NoSQL

Composant

Adresse du dépôt

Version minimale

Versions ultérieures

Go Elasticsearch

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

v7.0.0

Aucune limite

Go Redis

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

v8.10.0

Aucune limite

Go SQL Driver

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

v1.4.0

v1.9.3

Gorm

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

v1.20.12

Aucune limite

GORM MySQL

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

v1.0.4

Aucune limite

Bibliothèque standard Go MySQL

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

v1.18

Aucune limite

Mongo

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

v1.11.1

Aucune limite

PostgreSQL

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

v10.10.0

v10.15.1

Redis Go

https://github.com/gomodule/redigo

v1.9.0

v1.9.3

Rueidis

https://github.com/redis/rueidis

v1.0.30

Aucune limite

sqlx

https://github.com/jmoiron/sqlx

v1.3.0

Aucune limite

Xorm

https://github.com/go-xorm

v0.2.2

Aucune limite

ClickHouse

https://github.com/ClickHouse/clickhouse-go

v2.0.1

Aucune limite

GORM ClickHouse

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

v0.2.0

Aucune limite

Cassandra

https://github.com/apache/cassandra-gocql-driver

v1.3.0

Aucune limite

Journalisation

Composant

Adresse du dépôt

Version antérieure

Version plus récente

Gokit Log

https://github.com/go-kit/log

v0.1.0

v0.2.1

Zerolog

https://github.com/rs/zerolog

v1.10.0

Aucune limite

Zap

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

v1.13.0

Aucune limite

Logrus

https://github.com/sirupsen/logrus

v1.4.2

Aucune limite

Log

https://pkg.go.dev/log

v1.21

Aucune limite

Slog

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

v1.21

Aucune limite

go-zero logx

https://github.com/zeromicro/go-zero/tree/master/core/logx

v1.6.5

Aucune limite

Kratos log

https://github.com/go-kratos/kratos/blob/main/middleware/logging

v2.1.2

v2.4.0

Planification des tâches

Composant

Adresse du dépôt

Version minimale

Version supérieure

Cron

https://github.com/robfig/cron

v3.0.0

Aucune limite

XxlJob

https://github.com/xxl-job/xxl-job-executor-go

v1.2.0

Aucune limite

Asynq

https://github.com/hibiken/asynq

v0.23.0

Aucune limite

SDK de traçage

Composant

Adresse du dépôt

Version minimale

Édition avancée

OpenTracing SDK

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

v1.1.0

v1.2.0

OpenTelemetry SDK

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

v1.6.0

Aucune limite supérieure

SDK IA

Composant

Adresse du dépôt

Version minimale

Versions supérieures

Dify Sandbox

https://github.com/langgenius/dify-sandbox

v0.2.0

Aucune limite

Dify Plugin Daemon

https://github.com/langgenius/dify-plugin-daemon

v0.0.6

Aucune limite

MCP SDK

https://github.com/mark3labs/mcp-go

v0.20.0

Aucune limite

Langchain SDK

https://github.com/tmc/langchaingo

v0.1.0

Aucune limite

openai-go

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

v1.5.0

Aucune limite

go-openai

https://github.com/sashabaranov/go-openai

v1.30.0

Aucune limite

deepseek

https://github.com/cohesion-org/deepseek-go

v1.3.0

Aucune limite

coze-studio

https://github.com/coze-dev/coze-studio

v0.2.0

Aucune limite

adk-go

https://github.com/google/adk-go

v0.3.0

Aucune limite

eino

https://github.com/cloudwego/eino

v0.4.0

Aucune limite

Google GenAI

https://github.com/googleapis/go-genai

v1.30.0

Aucune limite

(Le mode Stream de Google GenAI prend actuellement uniquement en charge les versions v1.36.0, v1.37.0, v1.45.0 et v1.46.0.)

anthropic-sdk-go

https://github.com/anthropics/anthropic-sdk-go

v1.25.0

Aucune limite

volcengine-go-sdk

https://github.com/volcengine/volc-sdk-golang

v1.2.21

Aucune limite

new-api

https://github.com/QuantumNous/new-api

v0.12.8

Aucune limite

milvus client

https://github.com/milvus-io/milvus/tree/master/client

v2.5.0

Aucune limite

beads

https://github.com/gastownhall/beads

v1.0.0

Aucune limite

trpc-go-agent

https://github.com/trpc-group/trpc-agent-go

v0.1.0

Aucune limite

agent-orchestrator

https://github.com/AgentWrapper/agent-orchestrator

v0.1.0

Aucune limite

bifrost

https://github.com/maximhq/bifrost

v1.4.0

Aucune limite

e2b

https://github.com/openkruise/agents-api/

v0.4.0-alpha4

Aucune limite

SDK Alibaba Cloud

Composant

Adresse du dépôt

Version minimale

Version supérieure

FC Go SDK

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

v0.2.9

v0.3.1

OTS Go SDK

https://github.com/aliyun/aliyun-tablestore-go-sdk

v1.5.0

Aucune limite

Autres SDK

Composant

Adresse du dépôt

Versions antérieures

Version plus récente

ants pool

https://github.com/panjf2000/ants

v1.1.0

Aucune limite

K8s Client

https://github.com/kubernetes/client-go

v0.27.0

v0.32.3

K8s Controller Runtime

https://github.com/kubernetes-sigs/controller-runtime

v0.13.1

v0.23.3

FAQ

Comment maintenir la continuité des traces pour les versions Asynq antérieures à v0.26.0 ?

Pour plus d'informations, consultez Comment maintenir la continuité des traces pour les versions Asynq antérieures à v0.26.0 ?.

Pourquoi une discontinuité des traces se produit-elle lors de l'utilisation de frameworks de messagerie ?

En raison des détails d'implémentation de certains frameworks de messagerie, l'agent Go actuel présente des limitations lors de la propagation du contexte de trace entre eux.

Composant

URL du dépôt

Producteur

Consommateur

AMQP

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

Aucune limite.

Seuls les spans Receive sont enregistrés. Les spans générés à partir des appels en aval basés sur le contenu du message ne peuvent pas être liés au span Receive.

Segmentio Kafka

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

Aucune limite.

Seuls les spans Receive sont enregistrés. Les spans générés à partir des appels en aval basés sur le contenu du message ne peuvent pas être liés au span Receive.

Shopify Sarama

https://github.com/IBM/sarama

Lors de l'utilisation d'AsyncProducer, le span Publish ne peut pas être lié à son span parent appelant.

Seuls les spans Receive sont enregistrés. Les spans générés à partir des appels en aval basés sur le contenu du message ne peuvent pas être liés au span Receive.

IBM Sarama

https://github.com/IBM/sarama

Lors de l'utilisation d'AsyncProducer, le span Publish ne peut pas être lié à son span parent appelant.

Seuls les spans Receive sont enregistrés. Les spans générés à partir des appels en aval basés sur le contenu du message ne peuvent pas être liés au span Receive.

RocketMQ Client Go

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

Aucune limite.

  • Seul PushConsumer est pris en charge.

  • Lors de la consommation de plusieurs messages à la fois et de l'exécution d'appels en aval pendant la consommation, tous les spans en aval sont rattachés sous le dernier message de ce lot. Ce problème ne se produit pas lors de la consommation d'un message à la fois.

RocketMQ Client

https://github.com/apache/rocketmq-clients/tree/master/golang

Aucune limite.

Seuls les spans Receive sont enregistrés. Les spans générés à partir des appels en aval basés sur le contenu du message ne peuvent pas être liés au span Receive.

Pourquoi ne vois-je pas les appels de base de données ou NoSQL dans la console lorsque j'utilise des clients Redis ?

En raison des détails d'implémentation du framework, l'agent Go ne peut pas instrumenter les actions qui s'exécutent avant la fonction init.

Assurez-vous d'initialiser votre client Redis ou de base de données dans la fonction init.

// Invalid approach
var rdb = redis.NewClient(&redis.Options{
	Addr:     "localhost:6379",
	Password: "", // no password set
	DB:       0,  // use default DB
})
// Valid approach
var rdb *redis.Client
func init() {
	rdb = redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "", // no password set
		DB:       0,  // use default DB
	})
}

Pourquoi ne vois-je pas mon instrumentation personnalisée du SDK OpenTelemetry ?

  1. Dans la page Custom Configuration, sélectionnez opentelemetry-plugin dans la section Agent Switch Settings, puis redémarrez votre application.

  2. Le taux d'échantillonnage par défaut est de 10 %. Il est possible que vous ne voyiez pas les traces si le nombre de requêtes est faible. Vous pouvez ajuster le taux d'échantillonnage selon vos besoins.

Comment ajouter des spans personnalisés pour RabbitMQ ?

Utilisez l'exemple de code suivant pour ajouter des spans personnalisés :

import (
    "context"
    oTrace "go.opentelemetry.io/otel/trace"
    "go.opentelemetry.io/otel/propagation"
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/trace"
  )
  // Create a span for each message in the handler.
  func handle(deliveries <-chan amqp.Delivery, done chan error) {
      cleanup := func() {
          Log.Printf("handle: deliveries channel closed")
          done <- nil
      }
      defer cleanup()
      for d := range deliveries {
        var headerMap propagation.MapCarrier
        headerMap = make(map[string]string)
        headerMap["traceparent"] = delivery.Headers["traceparent"]
        ctx := otel.GetTextMapPropagator().Extract(context.Background(), headerMap)
        ctx = oTrace.ContextWithSpanContext(context.Background(), oTrace.SpanFromContext(ctx).SpanContext())
        tracer = otel.GetTracerProvider().Tracer("")
        opts := append([]oTrace.SpanStartOption{}, oTrace.WithSpanKind(oTrace.SpanKindConsumer))
        ctx, span := tracer.Start(ctx, "mq", opts...)
        defer span.End()
        // Your message processing logic here
      }
  }
  

Comment ajouter des spans personnalisés pour Kafka ?

Utilisez l'exemple de code suivant pour ajouter des spans personnalisés :

import (
    kafka "github.com/segmentio/kafka-go"
      "go.opentelemetry.io/otel"
      "go.opentelemetry.io/otel/propagation"
      "go.opentelemetry.io/otel/trace"
      oTrace "go.opentelemetry.io/otel/trace"
  )
  // Create a span for each message in the handler.
  func handle(msg kafka.Message) {
      for _, attr := range msg.Headers {
          if attr.Key == "traceparent" {
              var headerMap propagation.MapCarrier
              headerMap = make(map[string]string)
              headerMap["traceparent"] = string(attr.Value)
              ctx := otel.GetTextMapPropagator().Extract(context.Background(), headerMap)
              tracer := otel.GetTracerProvider().Tracer("")
              opts := append([]oTrace.SpanStartOption{}, oTrace.WithSpanKind(oTrace.SpanKindConsumer))
              ctx, span := tracer.Start(ctx, "mq", opts...)
              defer span.End()
              // Your message processing logic here
          }
      }
  }