• ログイン今すぐ開始

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

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

問題を作成する

非同期アプリケーションのためのJavaエージェントAPI

New Relic for Java (エージェント バージョン 3.37 以上) には、非同期アクティビティを計測するための API が含まれています。 サポートされているフレームワーク では、エージェントは通常、非同期作業を自動的に計測します。しかし、非同期APIは、詳細を追加するのに便利です。このドキュメントでは、トークンとセグメントを使ってアプリを計測する例を紹介します。

非同期のトラッキングツール。トークンとセグメント

JavaエージェントAPIは、非同期アクティビティをトレースする2つの方法を提供しています。

  • トークン : トークンは、非同期の作業単位を特定のトランザクションに結びつけるために、スレッド間で渡されます。トークンは直接タイミングを取ることはありません。
  • セグメント : セグメントは、非同期アプリケーションコードの任意の部分を測定するために使用されますが、必ずしもメソッドやスレッドに関連付けられているわけではありません。セグメントは通常、コールバック・メカニズムによって完了する外部呼び出しを追跡するために使用されます。

トークン。非同期スレッドの接続

トークンを使用して、別々のスレッド上にある任意の作業単位をリンクします。このセクションでは、トークン関連のコールをまとめて使用し、非同期作業をインストルメント化する方法を説明します。クラスやメソッドの詳細については、Javadocを参照してください。

トークンを使用するには、最初にトークンを作成してから、別の呼び出しを元のトランザクションにリンクする必要があります。他の呼び出し内でできるだけ早くトークンをリンクする必要があります。トークンをすぐにリンクしないと、リンクしようとしている呼び出しの下に@Traceを含むメソッドが失われるリスクがあります。元の呼び出しでトークンを期限切れにすることもできます。次に、JavaエージェントはNewRelicUIで作業をリンクします。これらの例は、トークン関連の呼び出しを一緒に使用する方法を示しています。

ヒント

デフォルトでは、トランザクションは最大3000のトークンを作成でき、各トークンのデフォルトのタイムアウトは180秒です。前者の制限はtoken_limit configオプションで変更でき、後者はtoken_timeout configオプションで変更できます。token_limitを超えるトランザクションのトレースには、 token_clamp属性が含まれます。いずれかの構成オプションを増やすと、エージェントのメモリ使用量が増える可能性があります。

セグメンテーションです。任意の時間の非同期アクティビティ

セグメントは、非同期アプリケーションコードの任意の部分を計測するために使用され、必ずしもメソッドやスレッドに関連付けられている必要はありません。これは、外部サービスへの接続時間を計測するために最もよく使われます。必要に応じてセグメントを使用してください。

  • コールバックで完了するタイムコード
  • 多くのメソッドにまたがる非同期呼び出しの時間
  • ワークが作成されてから実行されるまでの時間を計測する(例:スレッドプールの場合)

ヒント

デフォルトでは、エージェントは特定のトランザクション中に最大1000セグメントを追跡できます。この制限は、 segment_timeout構成オプションを使用して変更できます。この制限を超えるトランザクションのトレースには、 segment_clamp属性が含まれます。この制限を増やすと、エージェントのメモリ使用量が増える可能性があります。

Copyright © 2022 New Relic Inc.

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