All Products
Search
Document Center

Application Real-Time Monitoring Service:Komponen dan framework Go yang didukung oleh Pemantauan Aplikasi ARMS

Last Updated:Jun 24, 2026

Topik ini menjelaskan persyaratan sistem operasi dan arsitektur untuk pemantauan aplikasi Go, serta komponen dan framework pihak ketiga yang didukung.

Persyaratan sistem operasi

Nama alat build

Sistem operasi

Arsitektur

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

Versi Go yang didukung

Versi 1.18 dan yang lebih baru

Versi plug-in yang didukung

Message

Komponen

Alamat repositori

Versi Sebelumnya

Versi yang Lebih Baru

AMQP

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

v1.4.0

v1.12.0

Segmentio Kafka

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

v0.4.10

no limit

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

Shopify Sarama

https://github.com/Shopify/sarama

v1.22.0

v1.38.1

Mqtt Server

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

v2.6.0

No limit

franz-go

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

v1.18.0

No limit

confluent-kafka-go

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

v1.7.0

No limit

streadway-amqp

https://github.com/streadway/amqp

v1.0.0

No limit

Framework RPC

Komponen

Alamat Repositori

Versi Lebih Rendah

Versi yang Lebih Baru

Beego

https://github.com/beego/beego

v1.2.0

No limit

Dubbo

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

v3.0.1

No limit

Echo

https://github.com/labstack/echo

v4.0.0

No limit

FastHTTP

https://github.com/valyala/fasthttp

v1.6.0

No limit

Fiber

https://github.com/gofiber/fiber

v2.43.0

No limit

Gin

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

v1.7.0

No limit

GoFrame

https://github.com/gogf/gf

v2.4.0

No limit

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

No limit

Go Zero

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

v1.5.0

No limit

gRPC

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

v1.20.1

No limit

Iris

https://github.com/kataras/iris

v12.0.0

No limit

Kitex

https://github.com/cloudwego/kitex

v0.5.1

No limit

Kratos

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

v2.1.2

v2.9.2

Macaron

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

v1.1.0

No limit

Mux

https://github.com/gorilla/mux

v1.3.0

No limit

Net/HTTP

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

v1.18

No limit

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

No limit

Req

https://github.com/imroc/req

v3.0.0

No limit

SQL/NoSQL

Komponen

Alamat Repositori

Versi minimum

Versi yang Lebih Baru

Go Elasticsearch

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

v7.0.0

No limit

Go Redis

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

v8.10.0

No limit

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

Unlimited

GORM MySQL

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

v1.0.4

No limit

Go standard library MySQL

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

v1.18

No limit

Mongo

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

v1.11.1

No limit

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

No limit

sqlx

https://github.com/jmoiron/sqlx

v1.3.0

Unlimited

Xorm

https://github.com/go-xorm

v0.2.2

No limit

ClickHouse

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

v2.0.1

No limit

GORM ClickHouse

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

v0.2.0

No limit

Cassandra

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

v1.3.0

Unlimited

Logging

Komponen

Alamat Repositori

Versi Awal

Versi Baru

Gokit Log

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

v0.1.0

v0.2.1

Zerolog

https://github.com/rs/zerolog

v1.10.0

No limit

Zap

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

v1.13.0

No limit

Logrus

https://github.com/sirupsen/logrus

v1.4.2

No limit

Log

https://pkg.go.dev/log

v1.21

No limit

Slog

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

v1.21

No limit

go-zero logx

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

v1.6.5

No limit

Kratos log

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

v2.1.2

v2.4.0

Penjadwalan pekerjaan

Komponen

Alamat Repositori

Versi minimum

Versi lebih tinggi

Cron

https://github.com/robfig/cron

v3.0.0

No limit

XxlJob

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

v1.2.0

No limit

Asynq

https://github.com/hibiken/asynq

v0.23.0

No limit

Trace SDK

Komponen

Alamat Repositori

Versi minimum

Edisi Lanjutan

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

No upper limit

AI SDK

Komponen

Alamat repositori

Versi minimum

Versi lebih tinggi

Dify Sandbox

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

v0.2.0

No limit

Dify Plugin Daemon

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

v0.0.6

No limit

MCP SDK

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

v0.20.0

No limit

Langchain SDK

https://github.com/tmc/langchaingo

v0.1.0

No limit

openai-go

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

v1.5.0

No limit

go-openai

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

v1.30.0

No limit

deepseek

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

v1.3.0

No limit

coze-studio

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

v0.2.0

No limit

adk-go

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

v0.3.0

No limit

eino

https://github.com/cloudwego/eino

v0.4.0

No limit

Google GenAI

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

v1.30.0

No limit

(Mode Stream Google GenAI saat ini hanya mendukung versi v1.36.0, v1.37.0, v1.45.0, dan v1.46.0.)

anthropic-sdk-go

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

v1.25.0

No limit

volcengine-go-sdk

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

v1.2.21

No limit

new-api

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

v0.12.8

No limit

Alibaba Cloud SDK

Komponen

Alamat repositori

Versi minimum

Versi lebih tinggi

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

No limit

SDK Lainnya

Komponen

Alamat repositori

Versi Sebelumnya

Versi baru

ants pool

https://github.com/panjf2000/ants

v1.1.0

No limit

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

Bagaimana cara mempertahankan kontinuitas jejak untuk versi Asynq sebelum v0.26.0?

Untuk informasi lebih lanjut, lihat Bagaimana cara mempertahankan kontinuitas jejak untuk versi Asynq sebelum v0.26.0?.

Mengapa terjadi diskontinuitas jejak saat menggunakan framework message?

Karena detail implementasi pada framework pesan tertentu, agen Go saat ini memiliki keterbatasan dalam menyebarkan konteks jejak (trace context) melalui framework tersebut.

Komponen

URL Repositori

Producer

Consumer

AMQP

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

No limit.

Hanya Receive Span yang direkam. Span yang dihasilkan dari panggilan downstream berdasarkan konten pesan tidak dapat ditautkan ke Receive Span tersebut.

Segmentio Kafka

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

No limit.

Hanya Receive Span yang direkam. Span yang dihasilkan dari panggilan downstream berdasarkan konten pesan tidak dapat ditautkan ke Receive Span tersebut.

Shopify Sarama

https://github.com/IBM/sarama

Saat menggunakan AsyncProducer, Publish Span tidak dapat ditautkan ke Span pemanggil induknya.

Hanya Receive Span yang direkam. Span yang dihasilkan dari panggilan downstream berdasarkan konten pesan tidak dapat ditautkan ke Receive Span tersebut.

IBM Sarama

https://github.com/IBM/sarama

Saat menggunakan AsyncProducer, Publish Span tidak dapat ditautkan ke Span pemanggil induknya.

Hanya Receive Span yang direkam. Span yang dihasilkan dari panggilan downstream berdasarkan konten pesan tidak dapat ditautkan ke Receive Span tersebut.

RocketMQ Client Go

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

No limit.

  • Hanya PushConsumer yang didukung.

  • Saat mengonsumsi beberapa pesan sekaligus dan melakukan panggilan downstream selama konsumsi, semua Span downstream dilampirkan di bawah pesan terakhir dalam batch tersebut. Masalah ini tidak terjadi saat mengonsumsi satu pesan dalam satu waktu.

RocketMQ Client

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

No limit.

Hanya Receive Span yang direkam. Span yang dihasilkan dari panggilan downstream berdasarkan konten pesan tidak dapat ditautkan ke Receive Span tersebut.

Mengapa saya tidak melihat panggilan database atau NoSQL di Konsol saat menggunakan klien Redis?

Karena detail implementasi framework, agen Go tidak dapat menginstrumentasi aksi yang dijalankan sebelum fungsi init.

Pastikan Anda menginisialisasi klien Redis atau database di dalam fungsi init.

// Pendekatan yang tidak valid
var rdb = redis.NewClient(&redis.Options{
	Addr:     "localhost:6379",
	Password: "", // tidak ada password yang disetel
	DB:       0,  // gunakan DB default
})
// Pendekatan yang valid
var rdb *redis.Client
func init() {
	rdb = redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "", // tidak ada password yang disetel
		DB:       0,  // gunakan DB default
	})
}

Mengapa saya tidak melihat instrumentasi OpenTelemetry SDK kustom saya?

  1. Pada halaman Konfigurasi Kustom, pilih opentelemetry-plugin di bagian Pengaturan Switch Agent, lalu restart aplikasi Anda.

  2. Laju sampel default adalah 10%. Anda mungkin tidak melihat jejak jika jumlah permintaan sedikit. Anda dapat menyesuaikan laju sampel sesuai kebutuhan.

Bagaimana cara menambahkan span kustom untuk RabbitMQ?

Gunakan contoh kode berikut untuk menambahkan span kustom:

import (
    "context"
    oTrace "go.opentelemetry.io/otel/trace"
    "go.opentelemetry.io/otel/propagation"
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/trace"
  )
  // Buat span untuk setiap pesan di 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()
        // Logika pemrosesan pesan Anda di sini
      }
  }
  

Bagaimana cara menambahkan span kustom untuk Kafka?

Gunakan contoh kode berikut untuk menambahkan span kustom:

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"
  )
  // Buat span untuk setiap pesan di 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()
              // Logika pemrosesan pesan Anda di sini
          }
      }
  }