아웃바운드 HTTP(s) 요청이 CAT에 적합하도록 하려면 외부 세그먼트를 만들어야 합니다 .
아웃바운드 HTTP(s) 요청에 대한 외부 세그먼트를 만드는 가장 쉬운 방법은 newrelic.NewRoundTripper
메서드를 사용하는 것입니다. 예를 들어, 이 코드는 나가는 CAT 헤더를 포함하는 http://api.example.com/
에 대한 요청을 만듭니다.
func useNewRoundTripper(txn *newrelic.Transaction) (*http.Response, error) {
client.Transport = newrelic.NewRoundTripper(client.Transport)
req, _ := http.NewRequest("GET", "http://api.example.com/", nil)
req = newrelic.RequestWithTransactionContext(req, txn)
Go 표준 라이브러리의 http.Request
을 사용하는 더 복잡한 요청이 있는 경우 newrelic.StartExternalSegment
메서드를 사용하여 아웃바운드 요청이 CAT에 적합한지 확인해야 합니다.
func external(txn *newrelic.Transaction, req *http.Request) (*http.Response, error) {
s := newrelic.StartExternalSegment(txn, req)
response, err := http.DefaultClient.Do(req)
구조체 리터럴을 통해 ExternalSegment
을 생성할 수도 있지만 이 세그먼트 will not 는 CAT에 적합합니다. 이 때문에 뉴렐릭은 newrelic.NewRoundTripper
또는 newrelic.ExternalSegment
사용을 권장합니다.
func noGoodForCat(txn *newrelic.Transaction, url string) (*http.Response, error) {
defer newrelic.ExternalSegment{
StartTime: txn.StartSegmentNow(),