ブラウザーモニタリング を APM for Java と併用することで、エンドユーザーのロードタイムを測定することができます。このドキュメントでは、ブラウザモニタリングを設定するためのベストプラクティスについて説明します。Javaアプリのブラウザモニタリングを設定する方法については、 ブラウザモニタリングとJavaエージェント を参照してください。
Apache Jasperコンパイラを使用していることを確認してください。
New Relic Java エージェントは、Apache Jasper コンパイラでコンパイルされたページのみを自動挿入します。以下のアプリケーションサーバは、デフォルトでJasperコンパイラを使用します。
- Tomcat
- Jetty
- Glassfish
- JBoss 4
最初のヘッドタグの直後にメタタグを配置します。
推奨: すべての < meta>
タグを、最初の < head>
タグの直後に配置してください。meta タグの中には、HTML 文書の先頭にどれだけ近いかという要件があるものがあります。 文字エンコーディング は、HTML 文書の最初の 512 バイト以内に宣言しなければなりません。文字エンコーディングの前に New Relic ヘッダーを配置すると、その後文字エンコーディングが 512 バイトの制限外になってしまう可能性があります。文字エンコーディングメタタグを < head>
タグの直後に配置することで、New Relic のヘッダーが文字エンコーディングの後に配置されるようになります。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<%= com.newrelic.api.agent.NewRelic.getBrowserTimingHeader() %>
. . .
</head>
X-UA-Compatible
meta タグは、 < head>
タグの直後の meta タグの中にあるべきです。このタグは、ページ作成者が Internet Explorer でページを表示する際のドキュメントモードを設定するためのものです。このタグは script タグの前に配置してください。New Relic ヘッダーが X-UA-Compatible
meta タグの前に配置されていると、ページが Internet Explorer で正しく表示されない場合があります。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9">
<%= com.newrelic.api.agent.NewRelic.getBrowserTimingHeader() %>
. . .
</head>
ヘッドセクションでは、if ... else文を避けてください。
自動計測スクリプトは、JSP ページ内の if ... else
ステートメントを認識しません。 if ... else
ブロックが最初の非meta、非titleタグの前にある場合、New Relic のヘッダーがページ内の不適切な位置に配置される可能性があります。例えば、このコードでは、自動計測スクリプトがmetaタグの前に挿入される可能性があります。
if (expression) { <nonmeta tag>}<meta tag><meta tag>
頭の部分に less than 記号を使った表現は避けてください。
New Relic Java エージェントは、HTML タグの始まりを示す開角ブラケット <
を探します。つまり、小なり記号を使った表現がある場合は、大なり記号を使った表現に変更するか、手動で計測を行う必要があります。例えば、以下のようになります。
<head><% for (i = 0; i < variable; i++). . . %>