Open3
go newrelic

参考
- アプリケーション名とKEY
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Your Application Name"),
newrelic.ConfigLicense("YOUR_NEW_RELIC_LICENSE_KEY")
)

通信の種類
- トランザクション
- 1つのリクエスト
- セグメント
- transactionを小分けにしたモノ
segmnet
- deferって最後に実行されるけど、「評価」は最初にされるらしく計測されるらしい
func (r MailStopCompanyRepo) GetAllCompanyIDs(ctx context.Context) []company.ID {
// defer newrelic.FromContext(ctx).StartSegment("(MailStopCompanyRepo) GetAllCompanyIDs").End()
// ↑ この行が実行される時点での挙動
var mscs []*MailStopCompany
if err := r.db.Find(&mscs).Error; err != nil {
panic(err)
}
ret := make([]company.ID, 0, len(mscs))
for _, m := range mscs {
ret = append(ret, m.CompanyID)
}
return ret
}
- APM
- Transactionsを選択 && リクエストを指定
- transaction trace
- segment