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

カスタムインストゥルメンテーションエディタ:UIからインストゥルメント

New Relicのカスタムインストゥルメンテーションエディタを使用すると、JavaアプリケーションユーザーはNew Relicのユーザーインタフェースを使用してカスタムインストゥルメンテーションを実装できます。このエディタは、アプリケーションコードを変更できない場合で、インストゥルメントするメソッドがそれほど多くない場合に使用することをお勧めします。他のインストゥルメンテーションの方法およびそれらを使用する理由については、Javaカスタムインストゥルメンテーションをご覧ください。

カスタムインストゥルメンテーションエディターを使用するには、 one.newrelic.com > All capabilities > APM & services > (select a Java app) > Settings > Instrumentationに移動します。カスタムインストゥルメンテーションエディタの用途:

要件

カスタムインストゥルメンテーションエディタを使用するには、以下の要件を満たす必要があります。

Requirement

Comments

エージェント

Javaエージェントのバージョン3.17.0またはそれ以降

セキュリティ

高セキュリティモードのユーザーは、インストゥルメンテーションをエクスポートしてからアプリケーションサーバーに手動でインポートする必要があります。

カスタムインストゥルメンテーションの定義

New Relicのユーザーインタフェースからカスタムインストゥルメンテーションを定義するには、スレッドプロファイリングセッションを使用して、アプリケーションの各スレッドのスタックトレースの詳細を収集します。可能な場合は、本稼動アプリケーションのインストゥルメンテーションの規則を変更する前に、本稼動前環境でカスタムインストゥルメンテーションをテストします。

どちらの環境でも、カスタムインストゥルメンテーションエディタを使用して、インストゥルメントするメソッドを定義して変更を適用します。

  1. スレッドプロファイラーセッションを新規作成します。十分なデータを確実に収集するには、セッションの長さを2分以上に設定します。

  2. one.newrelic.com > All capabilities > APM & services > (select an app) > Settings > Instrumentationに移動します。ページの下部にあるRecently collected thread profilesリストが表示されるまでスクロールし、最新のスレッドプロファイルを選択します。

  3. 個々のメソッドを展開して、インストゥルメントされていないメソッドを探します。

  4. 特定のノードのインストゥルメンテーションの規則を定義するには、InstrumentまたはIgnoreを選択し、必要に応じて規則をカスタマイズします

  5. 設定を保存するには、Confirm instrumentation changesを選択します。

  6. Instrumentationページから変更をデプロイします。

注意

可能な限り、過剰なインストゥルメンテーションを避けてください。一つひとつのメソッドがインストゥルメンテーションされる度に、エージェントはより多くのリソースを利用することになり、アプリケーションのオーバーヘッドが増大します。また、インストゥルメンテーションをデプロイすると、オーバーヘッドが短期的に増大します。これにより、数秒間アプリケーション要求の処理が遅れることがあります。

変更をUIから適用すると、エージェントは数回の収集サイクルで(通常は数分以内)、メソッドのインストゥルメンテーションが始まります。

エディタによる手動のインストゥルメンテーション

また、スレッドプロファイルを使用せずに、インストゥルメンテーションポイントを直接作成することも可能です。

  1. カスタムインストゥルメンテーションエディタで、

    Add manual instrumentation

    を選択し、インストゥルメントまたは無視するクラスとメソッドを手動で入力します。

  2. インストゥルメンテーションポイントを定義する場合は、XML規則によるカスタムインストゥルメンテーションの手順に従います。

  3. インストゥルメンテーションエディタから変更をデプロイします。

この方法を使用してインストゥルメンテーションを追加すると、スレッドプロファイルから使用できる機能以外の機能を使用できます。署名によるメソッドの照合に加えて、戻り値のタイプやJavaアノテーションごとにインストゥルメントし、インタフェース上のメソッドもインストゥルメントできます。

このような複雑なタイプのインストゥルメンテーションは、エディタで作成および削除できますが、編集はできません。

重要

メソッドにInstrumentation not allowedのマークが付いている場合は、New Relicのカスタムインストゥルメンテーションのトラブルシューティング手順に従います。

変更を手動でデプロイする

カスタムインストゥルメンテーションエディタは、カスタムインストゥルメンテーションセットを構築し、インストゥルメンテーションファイルをエクスポートしてからアプリケーションサーバーに手動でインポートするために使用することもできます。この方法は、高セキュリティモードのユーザーに必要です。

インストゥルメンテーションをエクスポートするには、UIを使用してカスタムインストゥルメンテーションを定義します。次に、InstrumentationページからExport xmlを選択し、アプリケーションサーバーにファイルをインポートします

ページ関数

Instrumentationページでは、以下の機能がサポートされます。

以下を行う場合...

操作...

カスタムインストゥルメンテーションを一時停止または無効にする

  • Disable instrumentation

    を選択して、すべてのUI定義カスタムインストゥルメントを一時的に無効にします。

  • Enable instrumentation

    を選択して、インストゥルメンテーションの設定を再度有効にします。

既存のインストゥルメンテーションをインポートする

インストゥルメンテーションポイントを編集または削除する

手動のインストゥルメンテーションは、削除するだけで編集はできません。

  • 特定のメソッドのインストゥルメンテーションを停止するには、

    Remove

    を選択します。

  • インストゥルメンテーションの規則を変更するには、

    Edit

    を選択します。

インストゥルメンテーションの履歴を表示する

  • Instrumentation history

    タブからは、誰がいつ変更をデプロイしたかを含め、カスタムインストゥルメンテーションの以前の各イテレーションを表示できます。

  • 古いバージョンは、

    export

    を選択してカスタムインストゥルメンテーションファイルのコピーをダウンロードし、その後にインストゥルメンテーションエディタにインポートすると復元できます。

インストゥルメンテーションのオプション

カスタムインストゥルメンテーションエディタを使用すると、以下のオプションを定義できます。

Instrumentation options

Comments

メソッドをインストゥルメントする

選択したメソッドのインストゥルメントを開始します。インストゥルメントするメソッドはNew Relic UIに表示されます。 Instrumentでは以下の子オプションがサポートされます。

  • Name the transaction (transaction name)

    自動命名規則によって定義される標準のトランザクション名を上書きします。UIはリストにある名前を代わりに使用します。

  • Start the transaction when this method executes

    :親トランザクション内のこのメトリックからメトリクスを含める代わりに、このメソッドに対する新しいトランザクションを作成します。このオプションによるエージェントの動作は、スレッドに既存のトランザクションがあるかどうかによって異なります。

カスタム属性をレポートする

メソッドのパラメーターは、トランザクションの属性として取得できます。New Relicは、これらの属性をトランザクショントレース、トレースされたエラー、およびTransactionイベントにレポートします。

セキュリティ上の理由により、カスタムインストゥルメンテーションエディタを使用してカスタム属性を取得することは、デフォルトでdisabledになっており、高セキュリティモードを使用している間は有効にできません。カスタムインストゥルメンテーションエディタを使用してカスタム属性をレポートし、Javaエージェントを高セキュリティモードにすることを望まない場合は、高セキュリティモードを無効にし、以下のテキストをnewrelic.ymlcommon:ブロックに追加します。

reinstrument:
attributes_enabled: true

トランザクションを無視

このメソッドを完全に無視します。エージェントはこのメソッドからメトリックスをレポートしなくなり、メソッドはApdex計算から除外されます。

「開始」オプションの結果

Instrument methods > Start the transaction when this method executesを選択した場合、エージェントの動作はスレッド上に既存のトランザクションがあるかどうかによって異なります。

クラスまたはメソッドをインストゥルメントする場合:

Start the transaction"フラグがオンになっていますか?

Yes

No

スレッドに既存のトランザクションがありisStart the transactionフラグがオンisになっている場合:

  1. エージェントは

    Start the transaction

    フラグを無視します。

  2. エージェントは、既存のトランザクションにクラス/メソッドを含めます。

スレッドに既存のトランザクションがありisStart the transactionフラグがオフになっている場合、エージェントは、既存のトランザクションにクラス/メソッドを含めます。

スレッドにトランザクションがなくStart the transactionフラグがオンisになっている場合:

  1. エージェントは、現在のトランザクションがないことを確認します。
  2. エージェントは、インストゥルメントしたクラス/メソッドから始まる新しいトランザクションを作成します。

スレッドにトランザクションがなくStart the transactionフラグがオフになっている場合:

  1. エージェントは、そのスレッドでトランザクションを探しますが、見つかりません。
  2. メトリックは破棄されます。
Copyright © 2024 New Relic株式会社。

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