Go Agent v0.1.9
リリース:2022-04-27
ベータ版 - バグ修正
panic状況でウェブトランザクション情報が収集できないエラーを修正しました。
- net/http
- github.com/labstack/echo
- github.com/gorilla/mux
- github.com/go-gonic/gin
ノート
recover()
はエラー情報を収集しますが、再度同じpanicを発生させます。
Go
defer func() {
// panic
x := recover()
var err error = nil
if x != nil {
err = fmt.Errorf("Panic: %v", x)
// panic情報収集
trace.Error(ctx, err)
err = nil
}
...
// 再びpanic発生
if x != nil {
panic(x)
}
}()
ベータ版 - アップデート
http status code収集
400以上のstatus codeは、エラーメッセージとして収集します。
github.com/labstack/echo
echo/v4に対応
既存のecho/whatapechoパッケージの代わりにecho/v4/whatapechoを使用します。
Go
import (
"github.com/labstack/echo"
"github.com/whatap/go-api/trace"
"github.com/whatap/go-api/instrumentation/github.com/labstack/echo/v4/whatapecho"
)
echoのHTTPErrorHandler Wrapperを追加
HTTPErrorHandlerは、エラー情報を追加して収集します。
echo.Context.Error()
関数が呼び出され、エラー情報を収集します。Recoverミドルウェアが処理したpanic情報を収集します。
whatapechoミドルウェアが最後に実行されると、HTTPErrorHandler情報をできるだけ多く収集できます。ミドルウェアの登録を一番上で設定し、Pre()
関数で登録します。
Go
func main() {
...
e := echo.New()
//echo DefaultHTTPErrorHandler wrapper
e.HTTPErrorHandler = whatapecho.WrapHTTPErrorHandler(e.DefaultHTTPErrorHandler)
e.Pre(whatapecho.Middleware())
e.Use(middleware.Recover())
...
}
ログ出力
debugオプションを設定すると、モニタリング関連のログを出力します。
debug=true
トランザクション、DBコネクション、Sql実行、Http外部呼び出しのログを追加しました。
Http Methodを指定して収集を除外できる設定を追加しました。
指定したuriに対して特定のHTTP Methodでリクエストされるトランザクションの収集を除外します。コンマ(,) を区切り文字として複数のuri、Methodを登録できます。大文字と小文字の区分はありません。
-
ignore_http_method_urls
#Default : ""#
#Type : String#
-
ignore_http_method
#Default : ""#
#Type : String#
ignore_http_method_urls=/index, /sql/select
ignore_http_method=options, connect