LoginSignup
2
1

More than 3 years have passed since last update.

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

Posted at

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

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

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1