Help us understand the problem. What is going on with this article?

ASP.NET CoreでNew Relic Browserモニタリングを有効化する

More than 1 year has passed since last update.

以前書いた記事で.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>

以上で手順は完了です。リクエストを生成して、ダッシュボードに表示されることを確認してください。

image.png

コピーペーストによる方法

サーバーサイドでレンダリングできない場合(例えばSPAなど)、headタグにコピーペーストでコードを埋め込むことができます。まずBrowserのダッシュボード(https://rpm.newrelic.com/accounts/<アカウントID>/browser)に移動し、右上のAdd moreをクリックします。

image.png

すると次のようなウィザードが表示されるのでCopy/Paste Javascript codeを選択し、次にモニタリングの種類を選択します。選択可能な方法はご契約のサブスクリプションに依存します。

image.png

次にアプリケーションの名前を指定します。もしAPMですでにモニタリングしていればYesを選んで表示されるアプリケーションから指定してください。すると、<script>タグで囲まれたコードが表示されるので、このコードをHTMLのheadタグの出来るだけ先頭に挿入します。

image.png

あとはアプリケーションを配置して、トラフィックを生成すると、先ほどと同じようにダッシュボードに表示されるはずです。

takayoshitanaka
New Relic株式会社でテクニカルサポートをしています。
http://www.newrelic.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away