Python エージェントを使用すると、自動または手動で Web ページにブラウザ監視を追加できます。 ユーザー インターフェースでを有効にするには、 Browseragent をインストールする手順に従ってください。 次に、このセクションの手順に従って Python エージェントを設定します。
ブラウザエージェントをPythonエージェントで使用するには、最新のリリースを入手してください。 詳細については、エージェントのインストール手順 を参照してください。
自動計測器のサポート
Pythonエージェントは、専用のWSGIサーバーに直接ホストされ、ネイティブなWSGIインターフェースを持ち、WSGIアプリケーションがHTMLページのレスポンスをイテレート/ジェネレータ経由で返すWSGIアプリケーションの自動インスツルメンテーションのみをサポートしています。
自動計測には専用のWSGIサーバーが必要です。
- Apache/mod_wsgi、gunicorn、uWSGIなどのWSGIサーバーに対応しています。
- TornadoまたはTwistedフレームワークの上でWSGIアダプタを使用することはサポートされていません。
Python エージェントは、WSGI start_response()
関数から返されたwrite()
コールバックを使用して HTML ページの応答を書き戻す場合、インストルメンテーションの挿入をサポートしません。自動インストルメンテーションの要件の詳細については、 「Python でのブラウザ インストルメンテーションのトラブルシューティング」を参照してください。
自動計測器の使用
Pythonエージェントは、あらゆるHTMLページのレスポンスに、ブラウザのJavaScriptエージェントを自動的に追加することができます。WSGIアプリケーションでは、エージェントはリクエストパイプラインにインストールされたWSGIミドルウェアを使用します。ミドルウェアはWSGIレベルなので、Django、Flask、Pyramidなどの一般的なPythonのWebフレームワークを含め、使用しているWebフレームワークに関わらず、あらゆるWSGIアプリケーションで自動インストゥルメンテーションが機能するはずです。
特定のページのインストゥルメンテーションを無効にする
自動計測機能を使いたいが、計測したくない HTML ページの応答がある場合は、そのリクエストの計測を無効にすることができます。この Python エージェント API コール を、そのリクエストハンドラのコードに追加してください。
newrelic.agent.disable_browser_autorum()
Apache/mod_wsgi など、リクエストごとの構成が可能な WSGI サーバーを使用している場合は、監視対象のアプリケーションに渡される WSGI Environ ディクショナリでそのリクエストのnewrelic.disable_browser_autorum
キーを設定することで、自動インストルメンテーションを無効にすることもできます。
例えば、Apache/mod_wsgiを使用している場合、URLでフィルタリングすることで自動計測を無効にすることができます。
<Location /login>SetEnv newrelic.disable_browser_autorum true</Location>
特定のページのブラウザ監視を手動で有効にする
特定のページにブラウザー インストルメンテーションを手動で追加できます。これは、たとえば、アプリケーションで自動インストルメンテーションが不可能な場合、nonced コンテンツ セキュリティ ポリシーを使用している場合、または特定のページのみのブラウザ データを収集したい場合に便利です。
この手順の呼び出しは、モニターするevery要求に対して実行する必要があります。 これらの関数をグローバル スコープでcannot回呼び出し、結果を後で使用するためにキャッシュします。
重要
Python エージェント バージョン 9.4.0 以降では、get_browser_timing_footer
API非推奨となり、常に空の文字列を返します。 get_browser_timing_footer()
の以前の機能は、現在get_browser_timing_header()
に含まれています。
古いバージョンのエージェントでは、ブラウザ エージェントをロードするためにフッターが必要です。
自動インストゥルメンテーションを無効にする: newrelic.iniファイルで、
browser_monitoring.auto_instrument
をfalse
に設定します。アプリケーションを再起動します。
モニターするeveryページのリクエスト ハンドラーに次の呼び出しを配置します。
import newrelic.agentheader = newrelic.agent.get_browser_timing_header()# The footer is required on Python Agent versions 9.3.0 and below.footer = newrelic.agent.get_browser_timing_footer()header
変数と場合によってはfooter
変数を HTML 応答に渡します。対応するページで、
header
変数を<head>
要素に挿入します。header
変数は、値がX-UA-Compatible
のcharset
プロパティまたはhttp-equiv
のメタタグの後に配置します。必要に応じて、
<body>
要素の終わりの前にfooter
変数を挿入します。
数分待ってから、 ブラウザの監視データを確認してください 。数分待ってもデータが表示されない場合は、 Troubleshooting browser instrumentation in Python を参照してください。
CSP Nonceのサポート
ブラウザ インストルメンテーションでの CSP Nonce の使用は、Python エージェントのバージョン 9.4.0 以降でサポートされています。ブラウザ インストルメンテーションで nonce を使用するには、ブラウザ監視の自動インストルメンテーションを無効にし、エージェント API 経由で手動インストルメンテーションを使用する必要があります。
API メソッドに nonce を引数として渡して、エージェントがブラウザのインストルメンテーションに nonce を挿入できるようになりました。
自動インストゥルメンテーションを無効にする:
newrelic.ini
ファイルで、browser_monitoring.auto_instrument
をfalse
に設定します。アプリケーションを再起動します。
モニターするeveryページのリクエスト ハンドラーに次の呼び出しを配置し、「NONCE」を CSP nonce に置き換えます。
import newrelic.agentheader = newrelic.agent.get_browser_timing_header("NONCE")header
変数を HTML 応答に渡します。対応するページで、
header
変数を<head>
要素に挿入します。header
変数は、値がX-UA-Compatible
のcharset
プロパティまたはhttp-equiv
のメタタグの後に配置します。