本文へスキップ

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