Go Agent Release Notes
Latest Version: 0.6.1
2026-06-24
v0.6.1
New yaml addルールを追加しました
- ビルド時に同じパッケージに新しいファイルを自動生成します(既存ファイルは上書きしません)。
- 以前の
append: true方式はaddルールに置き換えられました。既存のappend: trueyamlはビルド時に案内メッセージとともにブロックされます。
New LLMモニタリ ングをサポートしました
- Go LLM SDKをコード修正なしに自動計測します。LLM外部呼び出し・トークン使用量・応答遅延がダッシュボードに表示されます。
- 対応SDK:
sashabaranov/go-openai、cloudwego/eino-ext、anthropics/anthropic-sdk-go、openai/openai-go whatap.confにllm_enabled=trueを追加すると有効化されます。- LLMアダプターを直接importする場合は
go get github.com/whatap/go-api/instrumentation/llm@latestを実行してください。
Feature Kafka(sarama)外部呼び出し収集
- Kafka Producerの呼び出しが外部呼び出し統計に表示されます。
Changed ビルドコマンドを整理しました
- 非推奨の
init/inject/generate/uninitサブコマンドと-wrap/-no-outputオプションを削除しました。
Changed fmtログ計測をデフォルト無効化しました
fmt.Print*計測はデフォルト無効です。enabled_packages: [fmt]で有効化できます。- 高頻度ログアプリでオーバーヘッドが発生する可能性があります。
Fixed 自動計測の安定性を改善しました
- 既存のgRPCインターセプターが設定されたアプリの起動エラーを修正しました(既存インターセプターと共存して動作します)。
- 特定のネストされたコードでのビルドエラーを修正しました。
- 一部の状況でトランザクションが重複生成される問題を修正しました。
Fixed ログ計測のオーバーヘッドを改善しました
- ログ収集が無効の場合でも発生していた不要なオーバーヘッドを削除しました。
2026-02-25
v0.5.4
New 外部モジュール自動計測
-external-moduleオプションでgo getで取得した社内モジュールも自動計測できます
whatap-go-inst --external-module=mycompany.com/internal/lib go build ./...
New net/http、fasthttpの自動検出パターン追加
http.Server{Handler}、http.Handle()、fasthttp.Server{Handler}の構造体リテラルパターンを自動検出してラッピングします
Feature フレームワークWrap関数追加
whataphttp.WrapHandler()、whatapfasthttp.WrapHandler()、whataplogrus.WrapLogger()など8つのWrap関数を追加
Changed logrus計測パターン変更
SetOutput方式からHook方式に変更し、アプリのlogrus出力設定と競合しないようにしました
Changed セキュリティ脆弱性の解消
- データ中継エージェントのGoビルドバージョンを1.24.13にアップグレードし、OTLP関連の依存関係を削除することで108件のセキュリティ脆弱性を解消しました
Fixed 自動計測安定性の改善
- 匿名関数(Cobra Commandなど)内のコード変換、structフィールド初期化内の
framework.New()検出、空のmain()関数の処理、gorilla/mux forkの互換性問題を修正
2026-02-05
v0.5.3
Fixed Aerospike v6のClose()メソッドをラッピングする際にコンパイルエラーが発生する問題を修正
Fixed 同じ関数内でSaramaのNewConfig()を2回以上呼び出すと重複宣言エラーが発生する問題を修正
2026-02-04
v0.5.2
Fixed wrapモードでtagsフラグ値がビルドターゲットに変換される問題を修正
Fixed go install時にバージョン情報がdevと表示される問題を修正
2026-01-25
v0.5.1
Feature パッケージレベルのhttp.Clientおよびclient.Do()パターンの分散トレース対応
Fixed go-redis v7が誤って検出される問題を修正(v8/v9のみサポート)
2026-01-22
v0.5.0
New Go 1.18バージョン要求
go-apiモジュールの最小Goバージョンが1.17から1.18に引き上げられました。Go 1.18のGenerics機能を活用したWrap関数実装のために必要です。
Go 1.17以下のバージョンではgo-api v0.5.0を使用できません。
New 自動計測ツールwhatap-go-inst
Go ASTベースのソースコード自動計測CLIツールをサポートします。ソースコードを直接修正せずにビルド時点でモニタリングコードを自動挿入します。
# インストール
go install github.com/whatap/go-api-inst/cmd/whatap-go-inst@latest
# 使用
whatap-go-inst init
go get github.com/whatap/go-api@latest
go mod tidy
whatap-go-inst go build ./...サポートライブラリ
- Web: Gin, Echo, Fiber, Chi, Gorilla Mux, net/http, FastHTTP
- DB: database/sql, sqlx, GORM
- Redis: Redigo, go-redis (v8, v9)
- NoSQL: MongoDB, Aerospike
- メッセージキュー: Sarama (IBM/Shopify)
- RPC: gRPC, Kubernetes client-go
- ログ: log, logrus, zap
New Active Stack機能
実行中のトランザクションのgoroutineスタックをリアルタイムで収集し、ボトルネック区間を分析できます。
active_stack_enabled=true # デフォルト: true
active_stack_second=10 # 収集間隔(秒)
active_stack_count=100 # 最大収集数New トランザクション連携ログ収集(TraceLogWriter)
ログ出力時に現在のgoroutineのトランザクション情報を自動的に連携します。
import "github.com/whatap/go-api/logsink"
log.SetOutput(logsink.GetTraceLogWriter(os.Stderr))- goroutine IDベースのトランザクションコンテキスト自動連携
- 既存のGetWriterHookStderr()との互換性維持
New サポートライブラリ追加
| ライブラリ | パッケージ | whatapモジュール |
|---|---|---|
| go-redis v9 | github.com/redis/go-redis/v9 | whatapgoredis |
| go-redis v8 | github.com/go-redis/redis/v8 | whatapgoredis |
| sqlx | github.com/jmoiron/sqlx | whatapsqlx |
| MongoDB | go.mongodb.org/mongo-driver | whatapmongo |
| Aerospike | github.com/aerospike/aerospike-client-go | sql.Wrap |
| fmt.Print | fmt | whatapfmt |
Feature 汎用Wrap[T]関数(Go 1.18 Generics)
Go 1.18のGenericsを活用した汎用Wrap関数を追加しました。
result := trace.Wrap(ctx, "operation", func() int {
return doSomething()
})- trace.Wrap[T], trace.WrapError[T], trace.WrapVoid
- sql.Wrap[T], httpc.Wrap[T], method.Wrap[T]
Feature DB接続追跡(StartOpen)
データベース接続時点をモニタリングします。(SQL_TYPE_DBC)
- whatapgorm, whatapredigo, whatapgoredis, whatapsql, whatapsqlx
Feature HTTPクライアントmtraceヘッダー対応
マルチトランザクション追跡のためのmtraceヘッダーを自動的に追加します。
Changed goroutine IDベースのトランザクション追跡改善
contextがnilの場合でもgoroutine IDを使用してTraceContextを見つけられるように改善しました。go.use_goroutine_id_enabledの既定値がfalseからtrueに変更され、contextが渡されない環境でもSQLとHTTPトランザクション連携が正常に動作します。
Fixed LineBuffer.Append()バグ修正
ログ収集時にLineBuffer.Append()関数で発生していたバグを修正しました。
Fixed deprecated mongo.NewClient削除
whatapmongoでdeprecatedされたmongo.NewClientをmongo.Connectに変更しました。
Fixed URLパス"/"空白変換バグ修正
filepath.Join使用により"/"パスが空白に変換される問題を修正しました。
2025-11-19
v0.4.6
Fixed エージェント名パターンの環境変数処理バグを修正
object_name設定で{env.環境変数名}パターンが正常に動作しなかった問題を修正しました。
# 設定例
object_name={env.SERVER_NAME}-{pid}
# 環境変数: SERVER_NAME=web-server-01
# 結果: エージェント名 web-server-01-12345
Feature ログStdout出力
コンテナ環境でログをstdoutでも確認できます。
log_stdout_enabled=true # デフォルト: false
Feature プロセスIDパターンサポート
エージェント名にプロセスIDを含めることができます。同じサーバーで複数のプロセスを実行する際に便利です。
object_name=myapp-{pid}
# 結果: myapp-12345
Feature HTTPステータスコード別統計
HTTPステータスコード別にトランザクション統計を収集します。
5秒統計
- HTTPステータスコード別count/time集計
- 200/400/500番台ステータス別バケット集計
- 個別ステータスコード別詳細集計
5分統計
- URL + Statusの組み合わせでcount/time/error集計
- 5分ごとにサーバーへ送信
設定オプション
tx_status_meter_enabled=true # 5秒統計(デフォルト: true)
stat_txstatus_enabled=true # 5分統計(デフォルト: true)
stat_txstatus_max_count=10000 # 最大項目数
Feature KubernetesコンテナID連携
Kubernetes環境でコンテナIDを正確に連携できます。
動作方式
- Go Agentが実行されるとコンテナIDを
container.confファイルに生成します - 生成されたコンテナIDを使用してKubernetesモニタリングと連携します
# Deployment YAMLに環境変数を追加
env:
# Go Agent実行ファイルパス
- name: WHATAP_GO_AGENT_PATH
value: /usr/whatap/agent/whatap_agent_static
# コンテナIDが保存されるパス
- name: WHATAP_CONTAINER_CONF_PATH
value: /usr/whatap/agent
2025-09-12
v0.4.5
Fixed トランザクション収集エラーを修正
- エラーメッセージを収集する過程でエラーが発生し、トランザクションが正常に収集されない問題を修正
- 問題となるオプションの既定値をfalseに変更
- txtext_txname_enabled=false
- txtext_error_enabled=false
- v0.4.4を使用している場合、これらのオプションを無効にすることで問題を解決可能
2025-09-08
v0.4.4
Fixed Docker環境で複数コンテナのCPUコア収集(メータリング情報)が重複計算される問題を修正
- メータリング情報を伝達する過程で他のデータと混合される問題を修正
- Linux UUIDを基準に重複計算が防止されない不具合を修正
2024-10-16
v0.4.3
Fixedos.Stdout、os.Stderrログ収集エラーを修正
-
trace.Init関数でログ収集機能を有効にするように修正します。 できるだけ他のログライブラリよりも先に実行できるように変更します。 -
os.Stdout、os.Stderrをラッピングしたio.Writerが使用できる関数を追加しました。
2024-09-06
v0.4.2
Fixedライブラリーファイルが存在しないため発生するコンパイルエラーの修正
2024-08-28
v0.4.1
New Standard outputのログ収集機能を追加
Newエージェント設定ファイル(whatap.conf)より環境変数を優先処理するオプションを追加
-
既存のエージェント設定はwhatap.conf、環境変数の順に適用します。
-
use_env_first(既定値false)オプションを設定するとwhatap.confファイルの設定よりも環境変数を優先します。whatap.confuse_env_first=true -
WHATAP_USE_ENV_FIRST=true形式で環境変数を利用して設定できます。
Changed次のエージェントオプションの既定値を修正
-
TCP read timeoutの時間を30秒から120秒に変更します。
whatap.confnet_so_time=120000 -
TCP write bufferの値を8Mbから2Mbに変更します。
whatap.confnet_write_buffer_size=2*1024*1024
FixedOKIND環境変数の認識エラーを修正
OKINDまたはWHATAP_OKIND環境変数としてokindを設定できます。
2024-06-19
v0.4.0
New linux aarch64対応
Changed既存paramkey.txt代わりにsecurity.confファイルを使用
既存security.confファイルのparamkeyキー値を使用します。 既定値は、ランダム値ではなくWHATAPに指定するように変更します。 WHATAP指定されると、キーの入力なしで復号化できます。
Changed SQL文の正規化オプション設定の変更
-
SQL文でパラメータを分離して、正規化する機能を常に有効にします。
trace_sql_normalize_enabledオプションを常にtrueに設定します。 -
既に正規化オプションを無効に(正規化の中止設定)した状態であれば、正規化してパラメータを別表記する設定を有効にします。
profile_sql_param_enabledオプションをtrueに設定します。- 正規化されたパラメータを、別に暗号化して収集します。
- security.confの
paramkeyに復号化してデータを確認できます。
Changedモニタリングの中止機能を変更
-
trace.Init()関数の呼び出しがない場合(コメントと削除)、モニタリング機能を開始しません。 -
enabledオプション設定(true): 情報収集機能を中止します。 エージェントの内部バックグラウンドモジュールは保持されます。 -
shutdownオプション設定(true): すべてのエージェント機能を中止します。 再起動するには、shutdownオプションをtrueに変更して、アプリケーションを再起動する必要があります。
FixedエージェントがインストールされたサーバーのIPを、127.0.0.1に収集する問題を修正、WhaTapサーバーとTCPが接続されたLocal address IP情報として収集
2024-03-14
v0.3.3
Fixed go.modのreplace構文を削除(github.com/whatap/golibモジュールのreplace構文を削除)
Fixedサンプルソースのビルドエラーを修正(github.com/whatap/go-api-example)
2024-03-06
v0.3.2
Changedログモニタリングファイル名に日付形式の変数を使用するように修正
Python
strftime()使用を基準に修正します。 例、20240101: %Y%m%d
Fixed gRPCヘッダー収集エラーを修正
2024-01-24
v0.3.1
Fixed whatap.onodeオプション設定後、名前ではなくハッシュ(数字)値のみ表記されるエラーを修正
Fixed Ubuntu 14バージョンでwhatap-agent.serviceファイルが認識されないエラーを修正
2024-01-10
v0.3.0
FeatureマルチトランザクショントレースでTrace context(W3C) に対応
Trace contextに対応するOpenTelmetryとマルチトランザクショントレースの連携に対応します。
Changed SQL、Method、HTTP callのリソース指標の収集を修正
トランザクション開始時点のリソース(cpu、memory)と、各スタッフ開始時点のリソースの違いを収集します。
Changed設定ファイル(whatap.conf)がない場合、新たに生成するよう修正
FixedアクティブTX一覧から外部呼び出し累積件数が累積時間として誤って収集されるエラーを修正
FixedLinux環境でwhatap-agentサービス(whatap-agent.service)実行エラーを修正