Go Agent v0.1.8
リリース:2022-01-19
ベータ版 - アップデート
同時接続ユーザーの収集設定の追加
同時接続ユーザーメトリクスは、5分前から現在までのユーザー数を表示します。5分間の合計ユーザー数が表示されます。固有のユーザー情報は、HyperLogLogアルゴリズムで処理します。
固有のユーザー情報は、初期をIPとして設定されます。また、HTTP Header、Cookie項目の値でユーザーの識別情報を設定することができます。
設定
-
trace_user_header_ticket
#Default : ""#
#Type : string#
設定されたHTTP Headerの値を独自のユーザー情報として選択します。
-
trace_user_cookie_keys
#Default : ""#
#Type : string#
設定されたCookieの値を固有のユーザー情報として選択します。コンマ(,) を区切り文字として複数の名前を設定できます。設定された順に検索します。
アクティブ状態
アクティブなステータス機能を追加します。
ダッシュボード画面にアクティブなステータスグラフが表示されます。ステータスは、一般的な関数、SQL、DB connection、外部HTTP接続、ソケット接続があり、各ステータスごとに進行中のリクエスト数を表示します。
内部メトリクスの収集
別なgoroutineを実行して、5秒間隔で指標を収集します。
runtimeメトリクスの収集
分析 > メトリクスチャートでgo_runtime
カテゴリを選択して確認することができます。
収集メトリクス
メトリクス名 | 説明 |
---|---|
NumCpu | 現在のプロセスで使用できる論理CPU数 |
NumCgoCall | 現在のプロセスで実行したcgo呼び出し数 |
NumGoroutine | 現在存在するgoルーチンの数 |
Alloc | 割り当てられたヒープオブジェクトのバイト数 |
TotalAlloc | ヒープオブジェクトに割り当てられた累積バイト数 |
Sys | OSから取得した総メモリバイト数 |
Lookups | - |
Mallocs | 割り当てられたヒープオブジェクトの累積数 |
Frees | 解除されたヒープオブジェクトの累積数 |
HeapAlloc | 割り当てられたヒープオブジェクトのバイト数 |
HeapSys | OSから取得したヒープメモリのバイト数 |
HeapIdel | 使用されていないバイト数 |
HeapInuse | 使用中のバイト数 |
HeapReleased | OSに返される物理メモリのバイト数 |
HeapObjects | 割り当てられたヒープオブジェクト数 |
StackInuse | 使用中のスタックバイト数 |
StackSys | OSから取得したスタックメモリのバイト数 |
MSpanInuse | 割り当てられたmspanバイト数 |
MSpanSys | mspan用にOSから取得したメモリバイト数 |
MCacheInuse | 割り当てられたmcacheバイト数 |
MCacheSys | OSから取得したメモリのmcacheバイト数 |
BuckHashSys | バケットハッシュテーブルをプロファイリングするメモリのバイト数 |
GCSys | ガベージコレクションメタデータのメモリバイト数 |
OtherSys | その他のoff-heapメモリバイト数 (ランタイム時に割り当て) |
NextGC | 次のGCサイクルの対象ヒープサイズ |
LastGC | 最後のガベージ収集が完了した時間 (unixstamp nanosecond) |
PauseTotalNs | GCの累積ナノ秒 |
NumGC | 完了したGCサイクル数 |
NumForcedGC | 強制されたGCサイクル数 |
net/htpライブラリのRoundTripper対応
http transportでのRoundTripperの使用に対応します。パッケージのsql.Open
関数の代わりにwhatapsql.OpenContext
関数を使用します。PrepareContext
、QueryContext
、ExecContext
などのcontextを渡す関数の使用をお勧めします。
伝達するcontextはtrace.Start()
を使用する必要があり、whatap TraceCtx情報が必要です。
import (
"github.com/whatap/go-api/instrumentation/net/http/whataphttp"
)
func main() {
config := make(map[string]string)
trace.Init(config)
defer trace.Shutdown()
ctx, _ := trace.Start(context.Background(), "Http call")
defer trace.End(ctx, nil)
callUrl := "http://aaa.com/xxx"
client := http.DefaultClient
// Use WhaTap RoundTripper. whatapのTraceCtxがあるcontextを渡します。
client.Transport = whataphttp.NewRoundTrip(ctx, http.DefaultTransport)
resp, err := client.Get(callUrl)
if err != nil {
...
}
defer resp.Body.Close()
...
}