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

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

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

問題を作成する

アプリケーションの自動ネーミング

アプリケーションに付けた名前は、New Relic のパフォーマンス指標を整理するのに役立ちます。

New Relic の Java エージェントは、単一の JVM 内のすべてのトランザクションとその他のメトリクスを、設定app_namenewrelic.ymlで指定されたアプリケーション名にレポートします (アプリケーションの名前付けの詳細については、 「Java アプリケーションに名前を付ける」を参照してください)。newrelic.ymlenable_auto_app_namingtrueに変更すると、アプリケーションにはコンテキスト、フィルター、サーブレット、またはリクエスト属性に応じた名前が付けられます。

この設定により、トランザクション、エラー、メトリクスを New Relic ユーザー インターフェースの他の適切なアプリケーションにレポートしながら、単一の JVM で複数の Web アプリケーションを実行できます。バックグラウンド タスクでは、引き続きnewrelic.ymlのデフォルトのアプリケーション名が使用されます。

重要

これらの設定変更を有効にするには、JVMの再起動が必要です。

この設定はInfinite Tracingを有効にした場合には機能しません。

注意

アプリの自動ネーミングを有効にすると、エージェントに取り込まれるデータ量が増加します。 データ取り込みの警告と監視を行うには様々な方法があります

アプリケーション名のソース

enable_auto_app_namingtrueに設定すると、New Relic は次の情報ソースを使用してアプリケーションに名前を付けます。

アプリの種類

ネーミングソース

バックグラウンドタスク

デフォルトのアプリケーション名 newrelic.yml

Webトランザクション

優先順位の高い順に並べています。

  • リクエスト属性(最優先)
  • サーブレットの初期化パラメーター
  • フィルターの初期化パラメーター
  • ウェブアプリケーションのコンテキストパラメーター
  • Webアプリのコンテキスト名(表示名)
  • Webアプリのコンテキストパス(最優先)

リクエスト属性

APPLICATION_NAMEリクエスト属性は、XML 内のどの設定よりも優先されます。この属性は、Web トランザクションのできるだけ早い段階で設定します。複数回呼び出された場合、最後の呼び出しによってアプリケーション名が決定されます。

ヒント

APPLICATION_NAME ServletRequest でのみ動作します。

request属性を使用して、リクエストURIに基づいたきめ細かなアプリケーションの命名を行うこと。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
String requestUri = httpServletRequest.getRequestURI();
if (requestUri.startsWith("/my-special-request/")) {
request.setAttribute("com.newrelic.agent.APPLICATION_NAME", "MySpecialWebApp");
}
...

サーブレットの初期化パラメーター

init パラメータを使用して、 web.xmlの個々のサーブレットのアプリケーション名を設定するには:

<servlet>
<servlet-name>SqlServlet</servlet-name>
<servlet-class>test.SqlServlet</servlet-class>
<init-param>
<param-name>com.newrelic.agent.APPLICATION_NAME</param-name>
<param-value>MyServletApp</param-value>
</init-param>
</servlet>

エージェントは、呼び出してinit-paramの値を取得します。

javax.servlet.ServletConfig#getInitParameter(String)

引数com.newrelic.agent.APPLICATION_NAMEを使用します。

Web リクエストが複数のサーブレットを呼び出す場合、最初に終了したサーブレットのinit-paramが優先されます。init-paramのないサーブレットは、Web アプリのデフォルトのアプリケーション名を使用します。

アプリケーション名は、XMLで宣言する以外にも、javax.servlet.ServletRequestに属性を格納することで、アプリケーションコードで設定することができます。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
request.setAttribute("com.newrelic.agent.APPLICATION_NAME", "MyWebApp");
...

フィルターの初期化パラメーター

Webアプリにサーブレットがない場合は、フィルタのinitパラメータを使うことができます。

<filter>
<filter-name>SqlFilter</filter-name>
<filter-class>test.SqlFilter</filter-class>
<init-param>
<param-name>com.newrelic.agent.APPLICATION_NAME</param-name>
<param-value>MyFilterApp</param-value>
</init-param>
</filter>

エージェントは、引数com.newrelic.agent.APPLICATION_NAMEを指定してjavax.servlet.FilterConfig#getInitParameter(String)を呼び出すことで、 init-paramの値を取得します。アプリケーションの命名に関してはサーブレットがフィルターよりも優先されるため、フィルターの init パラメーターはサーブレットが呼び出されなかった場合にのみ使用されます。最初に終了するフィルタのinit-paramが優先されます。

コンテキストパラメータ

コンテキストパラメーターを使ってアプリケーション名を設定するには

<context-param>
<param-name>com.newrelic.agent.APPLICATION_NAME</param-name>
<param-value>MyWebApp</param-value>
</context-param>

エージェントは、引数com.newrelic.agent.APPLICATION_NAMEを指定してjavax.servlet.ServletContext#getInitParameter(String)を呼び出すことでコンテキスト パラメータの値を取得します。context パラメータは、 display-name要素よりも優先されます。

表示名

web.xmldisplay-name要素を使用してアプリケーション名を決定するには:

<display-name>MyWebApp</display-name>

エージェントは、 javax.servlet.ServletContext#getServletContextName()を呼び出してdisplay-name要素の値を取得します。

コンテクストパス

display-name要素がなく、アプリ名の設定に他の上位階層メソッドが使用されていない場合、アプリケーション名は Web アプリのコンテキスト パスから取得されます。エージェントは、 javax.servlet.ServletContext#getContextPath()を呼び出してコンテキスト パスを取得します。

コンテキストパスは、リクエストのコンテキストを選択するために使用されるリクエストURIの部分です。コンテキストパスは、リクエストURIの中で常に最初に置かれます。例えば、以下のようになります。

次のようなURLを考えてみましょう。

http://example.com/newrelic-axis2-ws/getWeather

このURLに

  • リクエスト URI は/newrelic-axis2-ws/getWeatherです。
  • コンテキスト パスは/newrelic-axis2-wsです。
  • アプリケーションの名前はnewrelic-axis2-wsです。
Copyright © 2024 New Relic Inc.

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