以前書いた記事で.NET CoreのエージェントではBrowserモニタリングを自動で有効化することができないと書きました。
Linux Docker コンテナに New Relic .NET Coreエージェントをインストールする方法
そのため有効化するコードを埋め込む必要があります。こちらのドキュメントに紹介されていますが、エージェントAPIを使う方法とコピーペーストで貼り付ける方法があります。
エージェントを他のNew Relic製品に接続する
New Relic Browserエージェントをインストールする
今回はこの2通りの方法を紹介します。
エージェントAPIを使う方法
この方法は、.NET Coreサーバーサイド側でエージェントAPIを利用して埋め込むJavaScriptコードを取得し、Viewに埋め込む方法です。
まずエージェントAPIのライブラリをプロジェクトの参照に追加します。.NET Core CLIを使う場合はこちらのコマンドです。
dotnet add package NewRelic.Agent.Api --version 8.16.567
次にRazorビュー側で<head>
タグの出来るだけ先頭の方にタグを挿入します。例えば、Razorのプロジェクトテンプレート(dotnet new webapp
で作成される)であれば、Pages/_Layout.cs.html
に追加すると全ページで有効にできます。下の例ではEnvironmentがDevelopmentでない場合のみ追加しています。これにより、Development環境を指定したローカルデバッグの時はBrowserモニタリングを無効化にすることができます。GetBrowserTimingHeader
の返り値を@Html.Raw
で囲うことを忘れないでください。
<!DOCTYPE html>
<html>
<head>
<environment exclude="Development">
@Html.Raw(NewRelic.Api.Agent.NewRelic.GetBrowserTimingHeader())
</environment>
以上で手順は完了です。リクエストを生成して、ダッシュボードに表示されることを確認してください。
コピーペーストによる方法
サーバーサイドでレンダリングできない場合(例えばSPAなど)、headタグにコピーペーストでコードを埋め込むことができます。まずBrowserのダッシュボード(https://rpm.newrelic.com/accounts/<アカウントID>/browser
)に移動し、右上のAdd more
をクリックします。
すると次のようなウィザードが表示されるのでCopy/Paste Javascript code
を選択し、次にモニタリングの種類を選択します。選択可能な方法はご契約のサブスクリプションに依存します。
次にアプリケーションの名前を指定します。もしAPMですでにモニタリングしていればYesを選んで表示されるアプリケーションから指定してください。すると、<script>
タグで囲まれたコードが表示されるので、このコードをHTMLのheadタグの出来るだけ先頭に挿入します。
あとはアプリケーションを配置して、トラフィックを生成すると、先ほどと同じようにダッシュボードに表示されるはずです。