Open3

go newrelic

engineer rebornengineer reborn

通信の種類

  • トランザクション
    • 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