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

この機械翻訳は、参考として提供されています。

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

問題を作成する

Instrument Go セグメント

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

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

Segments アプリケーション内のトランザクションの特定の部分です。 インストゥルメントされたセグメントによって、外部呼び出し、データストア呼び出し、キューへのメッセージの追加、バックグラウンドタスクなどの関数とコードブロックにかかる時間を測定できます。

Example: 配送情報とクレジット カード情報の両方を処理するチェックアウト プロセスに関連付けられたトランザクションがあります。 アプリケーションを計量して、その現場を 2 つの部分、つまり配送用の 1 つのセグメントと支払い用の 1 つのセグメントに分割することができます。

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

トランザクション をインストルメントすると、そのトランザクション内の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 のTransactionsページの APM Transactions breakdownテーブルとDatabasesタブに表示されます。

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

外部セグメント

Web サービス、クラウド内のリソース、その他のネットワーク呼び出しなどの外部サービスへの Go アプリケーション呼び出しを計装できます。 外部セグメントは、New Relic の Transactions breakdownテーブルとExternal servicesページに表示されます。

外部セグメントのインストルメントには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.