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

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

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

問題を作成する

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

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

UIオプション

New RelicのUIを使用して、カスタムインストゥルメンテーション エディターでインストゥルメンテーション ルールを定義したり、Java アプリの Settings を介して XML ファイルを編集したりできます。

Java apps only: New Relic UI から XML ファイルを直接編集するには、 one.newrelic.com > All capabilities > APM & services > (select a Java app) > Settings > Live Instrumentationに移動します。 ここから次のことができます:

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

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

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

one.newrelic.com > All capabilities > APM & services > (select an app) > Events > Thread profiler: 灰色のアイコンは、インストゥルメントできないことを意味します。 白いアイコンは、インストルメントされていないが、インストゥルメント化できることを意味します。 青いアイコンは現在インストゥルメントされていることを意味します。

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

  1. one.newrelic.com > All capabilities > APM & services > (select an app) > 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値を持つポイントカットの例です。 メソッドを APM Transactions内訳表のセグメントとしてではなく、個別のトランザクションとして分離するために、 nameTransactionが XML に追加されました。

# 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株式会社。

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