• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

Instrument Go セグメント

New Relic for Go を使用すると、Go アプリケーションの トランザクション の特定のセグメントを監視して、特定の機能やコードブロックについてより詳細な情報を得ることができます。

機能やコードブロックの計測時間

セグメント は、アプリケーションにおける トランザクション の特定の部分を指します。セグメントを計測することで、外部呼び出し、データストア呼び出し、キューへのメッセージ追加、バックグラウンドタスクなどの関数やコードブロックにかかる時間を計測することができます。

例: 出荷情報とクレジットカード情報の両方を処理する、チェックアウトプロセスに関連するトランザクションがあります。このトランザクションを、配送用のセグメントと支払い用のセグメントの2つに分割するようにアプリケーションを作成することができます。

ブロック・オブ・コード・セグメント

トランザクション をインストルメントすると、そのトランザクション内の1つまたは複数のセグメントをインストルメントする準備が整います。

コードの任意のブロックをセグメントとして計測するには、次のパターンを使用し、トランザクションに設定された変数名としてtxnを含めます。

segment := newrelic.Segment{}
segment.Name = "mySegmentName"
segment.StartTime = txn.StartSegmentNow()
// ... code you want to time here ...
segment.End()

StartSegment 便利なヘルパーです。セグメントを作成して開始します。

segment := txn.StartSegment("mySegmentName")
// ... code you want to time here ...
segment.End()

機能セグメント

関数をセグメントとしてインスツルメントすることは、任意のコードブロックをセグメントとしてインスツルメントすることと基本的に同じです。主な違いは、関数には個別の終わりがあるので、Go の defer ステートメント を使用できることです。

関数をセグメントとして計測するには、関数の先頭に次のコードを追加し、トランザクションに設定された変数名としてtxnを含めます。

defer txn.StartSegment("mySegmentName").End()

ネストセグメント

セグメントはネストすることができます。終了するセグメントは、最後に開始されたセグメントでなければなりません。

以下は、あるセグメントが別のセグメントの中で始まり、終わる例です。

s1 := txn.StartSegment("outerSegment")
s2 := txn.StartSegment("innerSegment")
// s2 must end before s1
s2.End()
s1.End()

ゼロ値のセグメントは安全に終了することができます。したがって、次のコードは、条件付きで失敗しても安全です。

var s newrelic.Segment
if recordSegment {
s.StartTime = txn.StartSegmentNow()
}
// ... code you wish to time here ...
s.End()

データストアのセグメント

Go アプリケーションのデータストア呼び出しを計測することができます。データストアセグメントは、New Relic の APM Transactions breakdown テーブルと Databases タブの Transactions ページ に表示されます。

MySQL、PostgreSQL、または SQLite データベース ドライバを使用している場合、Datastore セグメントを追加する最も簡単な方法は、あらかじめ組み込まれている統合パッケージを使用することです。それ以外の場合は、データベースを呼び出すたびに手動で Datastore セグメントを作成することができます。

外部セグメント

Web サービス、クラウド内のリソース、その他のネットワーク呼び出しなどの外部サービスへの Go アプリケーション呼び出しを計測できます。外部セグメントが トランザクション内訳 表と New Relic の 外部サービス ページ

外部セグメントのインストルメントには2つの方法があります。

メッセージ・プロデューサー・セグメント

RabbitMQやKafkaなどのキューイングシステムにメッセージを追加するGoアプリケーションコールを計測することができます。メッセージプロデューサーのセグメントは、New Relic の APM Transactions breakdown に表示されます。

メッセージ・プロデューサー・セグメントを計測する方法は一つしかありません。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.