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

Application Real-Time Monitoring Service:ARMS アプリケーションモニタリングがサポートする Go コンポーネントとフレームワーク

最終更新日:Jul 14, 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.12.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.29.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

制限なし

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

制限なし

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

v2.9.2

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

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 Driver

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 標準ライブラリ MySQL

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/apache/cassandra-gocql-driver

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

制限なし

Alibaba Cloud SDK

コンポーネント

リポジトリアドレス

最小バージョン

上位バージョン

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

v0.29.3

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

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

v0.13.1

v0.17.3

よくある質問

Asynq v0.26.0 未満のバージョンでトレースの継続性を維持するにはどうすればよいですか?

詳細については、「Asynq の v0.26.0 より前のバージョンでトレースの継続性を維持する方法」をご参照ください。

メッセージフレームワークを使用すると、なぜトレースが途切れるのですか?

特定のメッセージフレームワークは実装上の仕様により、現在の Go エージェントでは、それらを介してトレースコンテキストを伝播させる際に制限があります。

コンポーネント

リポジトリ URL

プロデューサー

コンシューマー

AMQP

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

制限はありません。

受信スパンのみが記録されます。メッセージ内容に基づくダウンストリームコールで生成されたスパンは、受信スパンにリンクできません。

Segmentio Kafka

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

制限はありません。

受信スパンのみが記録されます。メッセージ内容に基づくダウンストリームコールで生成されたスパンは、受信スパンにリンクできません。

Shopify Sarama

https://github.com/IBM/sarama

AsyncProducer を使用する場合、パブリッシュスパンはその親の呼び出し元スパンにリンクできません。

受信スパンのみが記録されます。メッセージ内容に基づくダウンストリームコールで生成されたスパンは、受信スパンにリンクできません。

IBM Sarama

https://github.com/IBM/sarama

AsyncProducer を使用する場合、パブリッシュスパンはその親の呼び出し元スパンにリンクできません。

受信スパンのみが記録されます。メッセージ内容に基づくダウンストリームコールで生成されたスパンは、受信スパンにリンクできません。

RocketMQ Client Go

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

制限はありません。

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

  • 一度に複数のメッセージを消費し、消費中にダウンストリームコールを行う場合、すべてのダウンストリームスパンは、そのバッチの最後のメッセージにアタッチされます。この問題は、一度に 1 つのメッセージを消費する場合には発生しません。

RocketMQ Client

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

制限はありません。

受信スパンのみが記録されます。メッセージ内容に基づくダウンストリームコールで生成されたスパンは、受信スパンにリンクできません。

Redis クライアントを使用しているときに、コンソールにデータベースまたは NoSQL のコールが表示されないのはなぜですか?

フレームワークの実装上の仕様により、Go エージェントは init 関数より前に実行されるアクションを計装できません。

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

// 不適切なアプローチ
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 を使用
	})
}

カスタムの OpenTelemetry SDK 計装が表示されないのはなぜですか?

  1. [Custom Configuration] ページで、[Agent Switch Settings] セクションの [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"
  )
  // handle は、各メッセージのスパンを作成します。
  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(ctx, "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"
  )
  // handle は、各メッセージのスパンを作成します。
  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()
              // ここにメッセージ処理ロジックを記述します
          }
      }
  }