New Relic Browserを有効化する場合には、APM Agentを利用する方法とCopy/Pasteによるタグを埋め込む方法の2通りがあります。また、APM Agentを利用する方法では、利用している環境によっては特にソースコードの修正なく利用できる場合と、ソースコードの修正が必要な場合の2パターンがあります。この記事では、いつどの方法が使える/使えないのか、どのようなメリットがあるのか、について説明したいと思います。
APM Agentを利用する方法
利用できるケース
- 計測対象のページのHTMLを動的に生成しており、かつ、そのHTMLを生成するサーバーサイドアプリにAPM Agentを設定している場合
および、以下のどちらかを満たすケース
- HTMLを生成する処理にNew Relic APM Agent APIを呼び出すコードを挿入できる場合
- ソースコードの修正なしに有効化する機能がサポートしている言語・フレームワークの場合(詳細は以下で)
メリット
- Browserの有効化・無効化を含めほぼすべての設定変更を、アプリの変更・再デプロイなしにNew RelicのBrowser UIから実行できる
インストール手順の概要
- APM AgentでBrowserの計測を有効化します。多くの言語のAgentではデフォルトで有効化しています。
- ソースコードの修正が不要な言語・フレームワークか確認します。サポートされるパターンは以下の通りです。これ以外のパターンの場合や、うまく動かない場合はAPM Agent APIを利用する方法が使えます。
- IIS上で動くASP.NET (ASP.NET Coreではなく従来の方)アプリ。IISのhttpmoduleとして動作するため、content-typeがtext/htmlでなければなりません。
- JSPを利用した一部のJavaアプリ。
- PHPアプリ。ただし、Content-Lengthを明示的に設定したあとでは動作しません。
- WSGIサーバーを利用しているPythonアプリ。WSGIミドルウェアとして動作します。
- Rails2.3以降のRubyアプリ。
- APM Agent APIを利用する場合、計測対象のページのHTMLコードのheadタグを生成する箇所で、APM Agent APIで取得したscriptタグを挿入します。具体的な利用方法は各言語 Agentのドキュメントを参考にしてください。以前の記事の通り、このAPIはリクエストごとに呼び出す必要があり、Webサーバー起動時に実行してキャッシュするような使い方はできません。
- 有効化したWebページにブラウザからアクセスすると計測が始まります。すると、New RelicのBrowserのページにアプリが表示されます。これ以降、Browserの設定を変更する場合は、UIから変更することができます。
Copy/Pasteを利用する方法
利用できるケース
- 静的にHTMLを提供している場合やバックエンドのアプリにAPM Agentを設定していない場合を含むほぼすべてのケース
メリット
- ほぼすべてのケースに対応していること
インストール手順の概要
- New Relic BrowserのUIにアクセスし、新規Browserアプリケーションを「add more」から作成する
- UIの表示に従いアプリ名などを入力する。バックエンドのアプリにAPM Agentをインストールしている場合は対応するアプリ名を入力する。
- 表示されたscriptタグをコピーし、計測するページのHTMLのheadタグに挿入する。
- 挿入したHTMLを公開し、アクセスされると計測が始まります。
この方法のデメリットは、Browserの設定変更時にscriptタグを再生成し、HTMLコードを修正し再デプロイする必要があることです。もし、CI/CDなどをご利用の場合はその手間を削減する方法としてscriptタグをREST APIで取得する方法があります。Browser ApplicationsのListもしくはCreate APIでscriptタグを取得できるため、CI/CDプロセスに組み込むことで手動でのコード変更が不要にできます。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.