基本
公式参照
Go 用 New Relic のインストール | Degica x New Relic (New Relic 日本代理店)
https://newrelic.degica.com/docs/agents/go-agent/get-started/get-new-relic-go
smacker/newrelic-context
httpのContextベースでトランザクションを設定して、RDBやRedis等のセグメント計測を行ってくれる。便利。
gorm.DB
やredis.Client
インスタンスをcontextを使ってWrapする必要があるので予め想定したアーキテクチャにしておく。
gocraft/work用middleware
func NewrelicJobQueueMiddleware(appname, license string) (work.GenericMiddlewareHandler, error) {
app, err := newrelic.NewApplication(newrelic.NewConfig(appname, license))
if err != nil {
return nil, err
}
return func(job *work.Job, next work.NextMiddlewareFunc) error {
txn := app.StartTransaction(job.Name, nil, nil)
defer txn.End()
return next()
}, nil
}
//...
nm, _ := NewrelicJobQueueMiddleware("your_app", "YOUR_LICENSE")
pool.Middleware(nm)