• English日本語한국어
  • ログイン今すぐ開始

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

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

問題を作成する

Javaカスタムインストルメントのトラブルシューティング

ここでは、New Relic の Java エージェントで カスタムインスツルメンテーションを行う際のトラブルシューティングを紹介します。

UIオプション

New RelicのUIを使用して、 Custom Instrumentation Editorでインスツルメンテーションルールを定義するか、Javaアプリの Settings でXMLファイルを編集することができます。

Java アプリのみ: New Relic UI から XML ファイルを直接編集するには: ****one.newrelic.com > All capabilities > APM & services > (Java アプリを選択) > Settings > Live Instrumentation に移動します。ここから次のことができます。

  • サンプルXMLファイルのダウンロード
  • 既存のXMLファイルを選択して編集します。
  • 楽器の履歴を検索します。

スレッドプロファイラでのネストされたトランザクション

カスタム インストルメンテーションは、ネストされたトランザクションに役立ちます。スレッド プロファイラーでは、横に灰色のアイコンが付いているメソッドはインストルメント化できません。ただし、通常、これらのメソッドの子はインストルメント化できます。

one.newrelic.com > All capabilities > APM & services > (アプリを選択) > Events > Thread profiler: 灰色のアイコンは、インストルメントできないことを意味します。白いアイコンは、計測されていないが計測可能であることを意味します。青いアイコンは、現在インストルメントされていることを意味します。

インストゥルメントできるメソッドを特定するには、適切なメソッドが見つかるまでスレッドプロファイルのツリーを展開します。

  1. one.newrelic.com > All capabilities > APM & services > (アプリを選択) > Events > Thread profilerに移動します。
  2. 適切な方法が見つかるまで、スレッドプロファイルのツリーを拡張します。
  3. 標準的な手順 に沿って、カスタム機器を定義し、展開する。

クラスとメソッド

Java エージェントのカスタム インストルメンテーションのトラブルシューティングを行うときは、 newrelic.yml構成ファイルのpointcut情報とログ ファイルの確認メッセージを比較してください。クラスとメソッドが一致していることを確認します。

次の例を見てみましょう。

# This is a pointcut example in your newrelic.yml config file:
<pointcut transactionStartPoint="true">
<className>com.example.class.name</className>
<method>
<name>exampleMethod</name>
</method>
</pointcut>

これが適切にインスツルメンテーションされていれば、ログファイルに以下のようなメッセージが表示されるかもしれません。

# This is a confirmation example in your log file:
Oct 1, 2015 10:58:52 -0700 [9805 1] com.newrelic FINER: Instrumenting com/example/class/name

ログファイルのクラスとメソッドがカスタム計測器の値と一致しない場合は、見直して必要に応じて調整してください。(カスタム計装のロードが成功したか失敗したかの確認が、ログファイルに表示されない場合もあります)。

XMLでトランザクションを分離

複数のmethod値を持つポイントカットの例を次に示します。nameTransactionが XML に追加され、APMトランザクション内訳表のセグメントとしてではなく、個別のトランザクションとしてメソッドを分割しました。

# This is a pointcut example to identify a specific transaction with XML custom instrumentation:
<pointcut>
<nameTransaction/>
<className>com.examplename.client.actionflow.impl.exampleActionFlow</className>
<method>
<name>requestNAME</name>
<parameters>
<type>boolean</type>
</parameters>
</method>
</pointcut>

非同期トランザクション

アプリケーションで非同期プロセスを使用している場合、Java APIを使用して非同期ワーカーアクティビティを親トランザクションに接続することができる場合があります。デフォルトでは、これらのトランザクションはリンクされません。詳細については、 Java asynchronous instrumentation を参照してください。

Copyright © 2024 New Relic Inc.

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