Node.js エージェントを使用すると、Web ページにブラウザー インストルメンテーション を追加できます。使用するにはブラウザ監視 Node.js エージェントを使用する場合は、Node.js エージェントの最新リリースを 使用していることを確認してください。
ユーザーインターフェースでブラウザモニタリングを有効にするには、 ブラウザエージェントをインストールする手順に従ってください 。次に、このセクションの手順に従って、Node.js エージェントをセットアップします。
JavaScriptヘッダーの挿入 Node.jsエージェントのインストルメンテーションは、アプリケーションを超えてエンドユーザーのブラウザーにまで継続できます。newrelic
モジュールはscript
ヘッダーを生成できます。これをHTMLテンプレートに挿入すると、エンドユーザーのページの読み込み時間がキャプチャされます。ヘッダーは手動で挿入する必要がありますが、追加の構成は必要ありません。
HTMLページのhead
タグの先頭で、 CHARSET
メタタグの後にnewrelic.getBrowserTimingHeader()
の結果を挿入します。
例外: Internet Explorerとの互換性を最大にするために、 X-UA-COMPATIBLE HTTP-EQUIV
メタタグの後 にnewrelic.getBrowserTimingHeader()
の結果を挿入します。
すべてのリクエストに対して一度だけヘッダーを呼び出します。ヘッダーをキャッシュしません。
ヘッダーの生成は高速で、アプリケーションがNew Relicに余分なリクエストをする必要もありません。
フレームワーク例 ここでは、さまざまなフレームワークやテンプレートを使ってブラウザ監視を設定する例を紹介します。
エクスプレスと翡翠 この例では、ウェブアプリケーションフレームワークの Express と、テンプレートモジュールの jade を使用しています。他のフレームワークでは仕様が異なりますが、この一般的なアプローチはほとんどの場合で機能するはずです。
ブラウザのタイミング見出しを挿入する最も簡単な方法は、 newrelic
モジュールをテンプレートに渡し、テンプレート内からnewrelic.getBrowserTimingHeader()
を呼び出すことです。
あなたのapp.js
で:
const newrelic = require ( 'newrelic' ) ;
const app = require ( 'express' ) ( ) ;
app . locals . newrelic = newrelic ;
app . get ( '/user/:id' , function ( req , res ) {
app . listen ( process . env . PORT ) ;
あなたのlayout.jade
で:
!= newrelic.getBrowserTimingHeader()
link(rel='stylesheet', href='stylesheets/style.css')
エクスプレス&スウィッグ この例では、Express with Swig を使用しています。
あなたのapp.js
で:
const newrelic = require ( 'newrelic' ) ;
const http = require ( 'http' )
const path = require ( 'path' )
const swig = require ( 'swig' )
const app = require ( 'express' ) ( ) ;
app . locals . newrelic = newrelic ;
app . engine ( 'html' , swig . renderFile ) ;
app . set ( 'view engine' , 'html' ) ;
app . set ( 'views' , __dirname + '/views' ) ;
app . get ( '/user/:id' , function ( req , res ) {
app . listen ( process . env . PORT ) ;
あなたのviews/user.html
で:
{{ newrelic.getBrowserTimingHeader() }}
Hapi.jsとハンドルバー この例では、 hapi.js と handlebars を使用しています。他の類似したテンプレート言語では、一般的に3重のブラケットを必要とします。例えば、 mustache と hogan-express を使用しています。これにより、スクリプトの内容がエスケープされるのを防ぐことができます。
app.js
でhapi を使用します:
const newrelic = require ( 'newrelic' ) ;
const Hapi = require ( 'hapi' ) ;
const server = new Hapi . Server ( parseInt ( PORT ) , '0.0.0.0' , {
engines : { html : 'handlebars' } ,
path : __dirname + '/templates'
function homepage ( request , reply ) {
nreum : newrelic . getBrowserTimingHeader ( ) ,
reply . view ( 'homepage' , context ) ;
あなたのtemplates/homepage.html
で:
ヘッダー生成の無効化 デフォルトでは、 newrelic.getBrowserTimingHeader()
の呼び出しは有効なヘッダーを返す必要があります。テンプレートコードを削除せずにヘッダー生成を無効にするには: newrelic.js
ファイルに次を追加します。
環境変数NEW_RELIC_BROWSER_MONITOR_ENABLE=false
を設定することもできます。
注意 ブラウザの監視を使用するときは、エージェントとNewRelicコレクターの間に常にssl
を残してください。
ブラウザの監視やnewrelic
モジュールを使用していない場合でも、API呼び出しをそのままにしておくことができます。
ブラウザの監視が無効になっている場合、またはエラーが発生して作業ヘッダーを生成できない場合、 newrelic
モジュールは無害なHTMLコメントを生成します。 newrelic
モジュールを完全に無効にすると、コンテンツは生成されません。