• /
  • ログイン
  • 無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

非同期アプリケーションのトレース

NewGoroutine APIを使った非同期セグメントのトレース機能は、 Goエージェントバージョン2.6.0 から利用可能です。バージョン2.6.0以降をお持ちでない場合は、Goエージェントを最新バージョンにアップデートしてください。

NewGoroutine(ニューゴルーチン

Transaction.NewGoroutine() Transaction メソッドは、トランザクションが複数のゴルーチンにセグメントを作成することを可能にします。

NewGoroutine は、 Transaction への新しい参照を返します。これは、 Transaction をセグメントを作成する別のゴ ルーチンに渡すときに必ず呼び出す必要があります。セグメントを作成する各ゴアティンは、独自の Transaction の参照を持つ必要があります。これは、他のゴルーチンが起動する前に呼んでも、後に呼んでも構いません。

すべての Transaction メソッドは、任意の Transaction 参照で使用できます。 Transaction は、任意のゴルーチンで End() が呼び出されると終了します。

新しい Transaction の参照を別のゴルーチンに直接渡す例。

go func(txn *newrelic.Transaction) {
defer txn.StartSegment("async").End()
time.Sleep(100 * time.Millisecond)
}(txn.NewGoroutine())

チャンネル上の新しい Transaction 参照を別のゴルーチンに渡す例。

ch := make(chan *newrelic.Transaction)
go func() {
txn := <-ch
defer txn.StartSegment("async").End()
time.Sleep(100 * time.Millisecond)
}()
ch <- txn.NewGoroutine()
問題を作成する
Copyright © 2022 New Relic Inc.