すべてのプロダクト
Search
ドキュメントセンター

Cloud Monitor:ARMS Application Monitoring がサポートする Go コンポーネントとフレームワーク

最終更新日:Sep 11, 2026

このトピックでは、Go アプリケーションモニタリングのオペレーティングシステムおよびアーキテクチャの要件について説明し、サポートされているサードパーティのコンポーネントとフレームワークの一覧を示します。

オペレーティングシステムの要件

コンパイラ名

オペレーティングシステム

アーキテクチャ

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

サポート対象の Go バージョン

1.18 以降

サポート対象のプラグインバージョン

メッセージング

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

AMQP

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

v1.4.0

v1.13.0

Segmentio Kafka

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

v0.4.10

制限なし

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 サーバー

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

v2.6.0

制限なし

franz-go

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

v1.18.0

制限なし

confluent-kafka-go

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

v1.7.0

制限なし

streadway-amqp

https://github.com/streadway/amqp

v1.0.0

v1.1.0

RPC フレームワーク

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

Beego

https://github.com/beego/beego

v1.2.0

制限なし

Dubbo

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

v3.0.1

制限なし

Echo

https://github.com/labstack/echo

v4.0.0

制限なし

FastHTTP

https://github.com/valyala/fasthttp

v1.6.0

制限なし

Fiber

https://github.com/gofiber/fiber

v2.43.0

制限なし

Gin

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

v1.7.0

制限なし

GoFrame

https://github.com/gogf/gf

v2.4.0

制限なし

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

制限なし

Go Zero

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

v1.5.0

制限なし

gRPC

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

v1.20.1

制限なし

Iris

https://github.com/kataras/iris

v12.0.0

制限なし

Kitex

https://github.com/cloudwego/kitex

v0.5.1

制限なし

Kratos

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

v2.1.2

v3.0.0

Macaron

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

v1.1.0

制限なし

Mux

https://github.com/gorilla/mux

v1.3.0

制限なし

Net/HTTP

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

v1.18

制限なし

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

Rpcx

https://github.com/smallnest/rpcx

v1.9.0

制限なし

Req

https://github.com/imroc/req

v3.0.0

制限なし

SQL/NoSQL

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

Go Elasticsearch

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

v7.0.0

制限なし

Go Redis

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

v8.10.0

制限なし

Go SQL ドライバー

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

v1.4.0

v1.9.3

Gorm

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

v1.20.12

制限なし

GORM MySQL

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

v1.0.4

制限なし

Go 標準ライブラリ database/sql

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

v1.18

制限なし

Mongo

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

v1.11.1

制限なし

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

制限なし

sqlx

https://github.com/jmoiron/sqlx

v1.3.0

制限なし

Xorm

https://github.com/go-xorm

v0.2.2

制限なし

ClickHouse

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

v2.0.1

制限なし

GORM ClickHouse

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

v0.2.0

制限なし

Cassandra

https://github.com/gocql/gocql

v1.3.0

制限なし

ロギング

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

Gokit Log

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

v0.1.0

v0.2.1

Zerolog

https://github.com/rs/zerolog

v1.10.0

制限なし

Zap

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

v1.13.0

制限なし

Logrus

https://github.com/sirupsen/logrus

v1.4.2

制限なし

Log

https://pkg.go.dev/log

v1.21

制限なし

Slog

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

v1.21

制限なし

go-zero logx

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

v1.6.5

制限なし

Kratos log

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

v2.1.2

v2.4.0

タスクスケジューリング

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

Cron

https://github.com/robfig/cron

v3.0.0

制限なし

XxlJob

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

v1.2.0

制限なし

Asynq

https://github.com/hibiken/asynq

v0.23.0

制限なし

トレース SDK

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

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

制限なし

AI SDK

コンポーネント

リポジトリ アドレス

最小バージョン

最大バージョン

Dify Sandbox

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

v0.2.0

制限なし

Dify Plugin Daemon

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

v0.0.6

制限なし

MCP SDK

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

v0.20.0

制限なし

Langchain SDK

https://github.com/tmc/langchaingo

v0.1.0

制限なし

openai-go

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

v1.5.0

制限なし

go-openai

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

v1.30.0

制限なし

deepseek

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

v1.3.0

制限なし

coze-studio

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

v0.2.0

制限なし

adk-go

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

v0.3.0

制限なし

eino

https://github.com/cloudwego/eino

v0.4.0

制限なし

Google GenAI

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

v1.30.0

制限なし (Google GenAI ストリームモードは現在、v1.36.0、v1.37.0、v1.45.0、および v1.46.0 のみをサポートしています。)

anthropic-sdk-go

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

v1.25.0

制限なし

volcengine-go-sdk

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

v1.2.21

制限なし

new-api

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

v0.12.8

制限なし

milvus client

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

v2.5.0

制限なし

beads

https://github.com/gastownhall/beads

v1.0.0

制限なし

trpc-go-agent

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

v0.1.0

制限なし

agent-orchestrator

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

v0.1.0

制限なし

bifrost

https://github.com/maximhq/bifrost

v1.4.0

制限なし

e2b

https://github.com/e2b-dev/e2b

v0.4.0-alpha4

制限なし

Alibaba Cloud SDKs

コンポーネント

リポジトリアドレス

最小バージョン

最大バージョン

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

制限なし

その他の SDK

コンポーネント

リポジトリ アドレス

最小バージョン

最大バージョン

ants pool

https://github.com/panjf2000/ants

v1.1.0

制限なし

K8s クライアント

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

v0.27.0

v0.32.3

K8s コントローラーランタイム

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

v0.13.1

v0.23.3

よくある質問

Asynq v0.26.0 未満のバージョンで継続的なトレースを実現する方法

v0.26.0 より前の Asynq バージョンでトレースの継続性を維持する

メッセージングフレームワークを使用するとトレースが途切れる理由

一部のメッセージングフレームワークの実装上の詳細により、Go エージェントにはトレースコンテキストの伝播時に制限があります。 制限は次のとおりです。

コンポーネント

リポジトリアドレス

プロデューサー

コンシューマー

AMQP

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

制限はありません。

Receive スパンのみが収集されます。 メッセージの内容に基づいたダウンストリーム呼び出しで作成されたスパンを、Receive スパンにリンクすることはできません。

Segmentio Kafka

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

制限はありません。

Receive スパンのみが収集されます。 メッセージの内容に基づいたダウンストリーム呼び出しで作成されたスパンを、Receive スパンにリンクすることはできません。

Sarama

https://github.com/IBM/sarama

AsyncProducer を使用する場合、Publish スパンを親の呼び出しスパンにリンクすることはできません。

Receive スパンのみが収集されます。 メッセージの内容に基づいたダウンストリーム呼び出しで作成されたスパンを、Receive スパンにリンクすることはできません。

IBM Sarama

https://github.com/IBM/sarama

When you use AsyncProducer, the Publish span cannot be linked to its parent call span.

Only Receive spans are collected. Spans created by downstream calls based on the message content cannot be linked to the Receive span.

RocketMQ Client Go

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

制限はありません。

  • PushConsumer のみがサポートされています。

  • 一度に複数のメッセージを消費してダウンストリームサービスを呼び出す場合、ダウンストリーム呼び出しのスパンはすべて、バッチ内の最後のメッセージのスパンにアタッチされます。 この問題は、一度に単一のメッセージを消費する場合には発生しません。

RocketMQ Client

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

制限はありません。

Receive スパンのみが収集されます。 メッセージの内容に基づいたダウンストリーム呼び出しで作成されたスパンを、Receive スパンにリンクすることはできません。

Redis クライアントを使用する際にコンソールでデータベース/NoSQL 呼び出しが表示されない理由

フレームワーク固有の実装のため、Go エージェントは init 関数の前に実行されるアクションを効果的にインストルメンテーションできません。

init 関数で Redis クライアントまたはデータベースクライアントを初期化してください。

// 無効なコード
var rdb = redis.NewClient(&redis.Options{
	Addr:     "localhost:6379",
	Password: "", // パスワードが設定されていません
	DB:       0,  // デフォルトの DB を使用
})

// 有効なコード
var rdb *redis.Client

func init() {
	rdb = redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "", // パスワードが設定されていません
		DB:       0,  // デフォルトの DB を使用
	})
}

カスタム OTel SDK インストルメンテーションが表示されない理由

  1. [カスタム設定] ページで、[プローブスイッチ設定] セクションの [opentelemetry-plugin] を選択します。 その後、アプリケーションを再起動します。

  2. デフォルトのサンプリングレートは 10% です。 リクエストの量が少ない場合、データが表示されないことがあります。 必要に応じてサンプリングレートを調整できます。

RabbitMQ にカスタムスパンを追加する方法

次のコードサンプルは、カスタムスパンを追加する方法を示しています。

import (
    "context"
    oTrace "go.opentelemetry.io/otel/trace"
    "go.opentelemetry.io/otel/propagation"
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/trace"
  )
  
  // メッセージハンドラでメッセージごとにスパンを作成します。
  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"] = d.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(context.Background(), "mq", opts...)
        defer span.End()
        // その他のプロセス
      }
  }
  
  

Kafka にカスタムスパンを追加する方法

次のコードサンプルは、カスタムスパンを追加する方法を示しています。

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"
  )
  
  // メッセージハンドラでメッセージごとにスパンを作成します。
  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)
              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(context.Background(), "mq", opts...)
              defer span.End()
              // その他のプロセス
          }
  
      }
  }