本文へスキップ

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ヒープオブジェクトに割り当てられた累積バイト数
SysOSから取得した総メモリバイト数
Lookups-
Mallocs割り当てられたヒープオブジェクトの累積数
Frees解除されたヒープオブジェクトの累積数
HeapAlloc割り当てられたヒープオブジェクトのバイト数
HeapSysOSから取得したヒープメモリのバイト数
HeapIdel使用されていないバイト数
HeapInuse使用中のバイト数
HeapReleasedOSに返される物理メモリのバイト数
HeapObjects割り当てられたヒープオブジェクト数
StackInuse使用中のスタックバイト数
StackSysOSから取得したスタックメモリのバイト数
MSpanInuse割り当てられたmspanバイト数
MSpanSysmspan用にOSから取得したメモリバイト数
MCacheInuse割り当てられたmcacheバイト数
MCacheSysOSから取得したメモリのmcacheバイト数
BuckHashSysバケットハッシュテーブルをプロファイリングするメモリのバイト数
GCSysガベージコレクションメタデータのメモリバイト数
OtherSysその他のoff-heapメモリバイト数 (ランタイム時に割り当て)
NextGC次のGCサイクルの対象ヒープサイズ
LastGC最後のガベージ収集が完了した時間 (unixstamp nanosecond)
PauseTotalNsGCの累積ナノ秒
NumGC完了したGCサイクル数
NumForcedGC強制されたGCサイクル数

net/htpライブラリのRoundTripper対応

http transportでのRoundTripperの使用に対応します。パッケージのsql.Open関数の代わりにwhatapsql.OpenContext関数を使用します。PrepareContextQueryContextExecContextなどのcontextを渡す関数の使用をお勧めします。

伝達するcontextはtrace.Start()を使用する必要があり、whatap TraceCtx情報が必要です。

Install guide
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()

...
}

参考例